DE69834807T2 - System und verfahren zum auswählen und laden verschiedener typen von videodaten in einem computernetzwerk - Google Patents

System und verfahren zum auswählen und laden verschiedener typen von videodaten in einem computernetzwerk Download PDF

Info

Publication number
DE69834807T2
DE69834807T2 DE69834807T DE69834807T DE69834807T2 DE 69834807 T2 DE69834807 T2 DE 69834807T2 DE 69834807 T DE69834807 T DE 69834807T DE 69834807 T DE69834807 T DE 69834807T DE 69834807 T2 DE69834807 T2 DE 69834807T2
Authority
DE
Germany
Prior art keywords
network
site
sites
user
data file
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.)
Expired - Lifetime
Application number
DE69834807T
Other languages
English (en)
Other versions
DE69834807D1 (de
Inventor
Brian Encinitas KENNER
W. Kenneth San Diego COLBY
J. Lonnie Encinitas BROWNELL
P. Guy San Diego WEATHERSBY
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.)
Akamai Technologies Inc
Original Assignee
Akamai Technologies Inc
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=21903595&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE69834807(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Akamai Technologies Inc filed Critical Akamai Technologies Inc
Application granted granted Critical
Publication of DE69834807D1 publication Critical patent/DE69834807D1/de
Publication of DE69834807T2 publication Critical patent/DE69834807T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
    • 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
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • 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
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1012Server selection for load balancing based on compliance of requirements or conditions with available server resources
    • 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
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • 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
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23116Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving data replication, e.g. over plural servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44209Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4622Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • H04N21/8193Monomedia components thereof involving executable data, e.g. software dedicated tools, e.g. video decoder software or IPMP tool
    • 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
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • 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/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams

Description

  • Die Erfindung betrifft ein System und ein Verfahren für die Speicherung und den Abruf verteilter Daten und insbesondere ein System und ein Verfahren, bei dem ein Benutzer Netzwerkleistungsinformationen für ein dynamisches und verteiltes Mehrzweck-Netzwerk erlangen kann und diese Informationen nutzen kann, um optimale Abgabe-Sites oder Server, von denen Computerdaten empfangen werden sollen, insbesondere Multimedia-Content, zu identifizieren und auszuwählen und um die besondere Art von Multimedia-Content auszuwählen, die der Benutzer betrachten kann. Solche Abgabe-Sites, Server und Content-Arten werden ausgewählt, um die Netzwerkkapazität zu erhöhen, um die Serverlast zu verteilen, um Übertragungsverzögerung zwischen dem Server und dem Benutzer zu reduzieren und um Hindernisse beim Betrachten des Multimedia-Content zu reduzieren.
  • HINTERGRUND DER ERFINDUNG
  • Das Internet ist ein loses Netzwerk von verbundenen Computern, das über die gesamte Welt ausgebreitet ist. Eine Nachricht kann von einem beliebigen Computer an dem Internet zu einem beliebigen anderen Computer gesendet werden, indem eine Zieladresse eingegeben und die Nachricht über eine Reihe von „Sprüngen" von Computer zu Computer übergeben wird. Jeder Computer, Router oder „Knoten" an dem Internet hat eine eindeutige Internetadresse. Wenn ein Zwischencomputer oder ein Zwischenrouter eine Nachricht im Durchgang empfängt, prüft der Computer die vorgesehene Zieladresse der Nachricht und leitet sie dementsprechend weiter.
  • Das Internet weitet sich mit großer Geschwindigkeit aus, sowohl in Bezug auf seine Größe als auch auf seine technische Ausgereiftheit und Leistungsstärke. In der Vergangenheit waren die Mehrzahl der Benutzer des Internet Akademiker, Forscher oder institutionelle Benutzer; das Internet wurde damals vorrangig verwendet, um elektronische Post und Netzwerknachrichten zu versenden und zu empfangen und um die Übertragung von Computerdateien zu ermöglichen. Seit der Einführung des World Wide Web (auch als das „Web" oder als „WWW" bekannt) vor einigen Jahren hat das Internet jedoch begonnen, zunehmende Mengen von anderen Arten von Daten von allgemeinem Interesse aufzunehmen, nämlich Darstellungen von Bildern, Artikeln u.s.w.
  • Das Webprotokoll und die Websprache bilden grafische Mittel zum Navigieren der weiten Räume des Internet. „Webseiten", die häufig aus Textmaterial und grafischem Material bestehen, werden auf zahlreichen Computern in dem gesamten Internet gespeichert, die als „Webserver" bekannt sind. Ein als „Browser" bekanntes Softwareprogramm kann verwendet werden, um über das Internet auf Webseiten zuzugreifen und diese zu betrachten, indem die Zieladresse (das heißt die Internetadresse) der gewünschten Webseite eingegeben wird. Wenn auf eine Webseite zugegriffen wird, werden deren Informationen von dem Ferncomputer (Server oder Abgabe-Site), der an einem beliebigen Ort in der Welt belegen sein kann, über das Internet zu dem Benutzer übertragen.
  • In jüngster Vergangenheit hat das Web begonnen, technisch sehr ausgereifte Arten von Multimedia-Content aufzunehmen, wie zum Beispiel Audio- und Videodaten, Videoclips und Computersoftware. Im Vergleich zu der ersten Generation von Web-Content, nämlich Text und Standbildern, weisen Audioclips, Videoclips und Softwareprogramme äußerst hohe Speicheranforderungen und Bandbreitenanforderungen auf.
  • Bevor ein Videoclip über ein Computernetzwerk übertragen werden kann, muss der Clip digitalisiert werden, indem das Analogsignal des Videos zu „1" und „0" verschlüsselt wird. Um die Bandbreite, die für die Übertragung des digitalisierten Videos erforderlich ist, zu reduzieren, wird der Videodatenstrom häufig komprimiert. Videokomprimierung ist ein Verfahren, durch das redundante Daten aus dem Videodatenstrom eliminiert werden, so dass die Gesamtgröße des Datenstroms reduziert wird. Es gibt zahlreiche verschiedene Komprimierungsformate, die zur Reduzierung der Videodatenströme verwendet werden, wie zum Beispiel MPEG, JPEG, H261, Indeo, Cinepak, AVI, Quicktime, TrueMotion und Wavelet.
  • Videoclips, die in einem komprimierten Format empfangen werden, müssen dekomprimiert werden, bevor sie betrachtet werden können. Dekomprimierung eines Videos wird häufig durch ein Videoplayer-Programm „CODEC" oder einen Komprimie rer/Dekomprimierer durchgeführt, die sich häufig an dem Multimedia-Endgerät des Benutzers befinden. Im Allgemeinen kann ein einzelnes CODEC-Programm nur ein einzelnes Komprimierungsformat erkennen und dekomprimieren.
  • Wenn ein Videoclip zur Übertragung in einem Format gespeichert ist, das durch das CODEC an einem Benutzer-Endgerät dekomprimiert werden kann, kann die Abgabe des Videoclips an den Benutzer reibungslos ablaufen. Dies ist üblicherweise der Fall, bei dem ein Abonnementdienst die Video-Abgabe über ein begrenztes Netzwerk bereitstellt. Der Dienst stellt einem teilnehmenden Benutzer einen bevorzugten CODEC zur Verfügung und speichert Videoclips in dem komprimierten Format, das den zur Verfügung gestellten CODEC erkennt.
  • Wenn ein Dienst jedoch beginnt, Videoclips über das Internet zur Verfügung zu stellen, ist es jedoch wahrscheinlicher, dass Videoclips von einem nicht teilnehmenden Benutzer, dessen Multimedia-Endgerät nicht den bevorzugten CODEC des Anbieters aufweist, angefordert werden. Wenn der Benutzer in diesem Fall die Videoclips betrachten möchte, muss er ein CODEC-Programm, das den gewünschten Videoclip dekomprimieren kann, erwerben oder herunterladen. Wie Videoclip-Dateien auch, können CODEC-Programmdateien große Dateien sein, die lange Zeit für das Herunterladen benötigen. Darüber hinaus kann es schwierig, zeitaufwändig oder unbequem sein, ein CODEC-Programm auf dem Multimedia-Endgerät zu installieren. Wenn der Benutzer gezwungen ist, ein CODEC-Programm herunterzuladen, bevor er eine Videodatei wiedergeben kann, wird er gegebenenfalls davon absehen, den Abruf dieses besonderen Videos weiter zu betreiben.
  • Gegenwärtig ist es schwierig, wenn nicht sogar unmöglich, nachhaltig schnelle Übertragung von großen Audio-/Video-Dateien über eine Verbindung mit mehreren Knoten am Internet bereitzustellen. Da die Daten oft über große Entfernungen übertragen werden, können zahlreiche Faktoren Verzögerung oder sogar Verlust der gesamten oder von Teilen der Übertragung verursachen. Es ist im Allgemeinen nicht kritisch, wenn ein Benutzer geringfügigere Verzögerungen bei dem Empfang kleiner grafischer Dateien oder Textdateien erlebt. Anerkanntermaßen bestehen bei Echtzeitdaten, wie zum Beispiel Videodaten, sehr konkrete und strenge Zeitanforderungen für die Datenübertragung und Datenanzeige.
  • Leider beruht die gegenwärtige Auslegung von herkömmlichen Internet-artigen Datennetzwerken auf dem Prinzip, dass Verzögerungen und signifikante Schwankungen der Datenübertragungsgeschwindigkeit für normale Daten (wie zum Beispiel Textdaten oder Standbilddaten) annehmbar sind. Demzufolge und wegen des hohen Wertes des Ermöglichens von Zugang zu Textinformationen und grafischen Informationen von Orten in der ganzen Welt gelten die genannten Übertragungsfehler als annehmbar, und die Grundkapazität des Internet ist etwas „überzeichnet", um die Datenübertragungskosten zu senken. Mit anderen Worten ist die Aktualität der Netzwerk-Datenübertragung wesentlich kompromittiert worden, um die Gesamtkosten von Fernkommunikationsverbindungen relativ gering zu halten.
  • Um Audio-/Video-Daten erfolgreich über nachrichtenorientierte Netzwerke, wie zum Beispiel das Internet, zu übertragen, müssen für mehr als nur einige Benutzer Netzwerkressourcen bereitgestellt werden, um die Aktualität der Übertragung zu unterstützen. Ein System, das bereitgestellte Netzwerkressourcen nutzt, kann im Allgemeinen den Vorteil vorhandener Preisbildungssysteme von gemeinsamen Netzwerken, wie zum Beispiel dem Internet, nicht nutzen, da es sich nicht an der gemeinsamen Nutzung von Netzwerkressourcen auf der Basis von einzelnen Datenpaketen beteiligen kann. Videodaten müssen unter Ausschluss von Daten niedriger Priorität übertragen werden. Die Übertragungskosten werden somit signifikant, insbesondere wenn es sich um eine „Fernverbindung" handelt oder wenn die Verbindung über einen längeren Zeitraum vorgehalten wird.
  • Eine weitere Konsequenz der Berücksichtung von Aktualität auf Kosten höherer Kosten wie oben diskutiert ist die scheinbar ungeordnete topografische Auslegung des Netzwerkes gewesen. Da Verzögerungen und Durchsatzschwankungen traditionell mit der Begründung niedriger Kosten entschuldigt worden sind, ist auch die Konfiguration der Internet-Infrastruktur durch Kostenüberlegungen angetrieben worden. Dementsprechend ist die Verbindungsleistung des Netzwerkes selten eine Überlegung gewesen. Das schnelle Wachstum von Echtzeitdaten ändert diese Anforderung nun.
  • Anerkanntermaßen wird ungenügende Datenübertragungsleistung von zeitempfindlichen Daten am Internet typischerweise durch vier Faktoren verursacht: Paketver lust, übermäßige Servernutzung, die relativ geringe Kapazität der Netzwerk-Infrastruktur und inhärente Verzögerungen in der Netzwerk-Hardware. Paketverlust wird insbesondere durch ungenügende Infrastruktur und ungenügende Robustheit des Routings verursacht. Die inhärenten Verzögerungen werden wahrscheinlich unter anderem durch ungenügende Flusssteuerung zwischen benachbarten Knoten in einem Pfad mit mehreren Knoten am Internet verursacht.
  • Im Gegensatz zu kleineren Textdateien und grafischen Dateien können relativ große Videodateien mehrere Minuten (oder mehr) von „Strömen" oder konstantem Datenfluss benötigen. Demzufolge werden die üblichen Probleme mit der Netzwerkleistung verschärft. Die Netzwerk-Bandbreite oder Datenträgerleistung eines jeweiligen Netzwerkes wird begrenzt. Somit erhöhen sich Paketverlust und Verzögerungen. Lange Abgabezeiten verbrauchen über lange Zeit eine große Serverkapazität, wodurch die den Benutzern zur Verfügung stehenden Ressourcen reduziert werden. Da die Netzwerk-Infrastruktur dementsprechend in zunehmendem Maße überlastet wird, erhöhen sich Paketverlust und Verzögerungen weiter, steigen die Übertragungszeiten und die Serverlasten weiter an.
  • Dieses Muster zeigt beispielhaft eine „Abwärtsspirale" von Netzwerkleistung, die durch die versuchte Übertragung von großen Datendateien, wie zum Beispiel Videoclips, angetrieben werden kann. Solange der Netzwerkverkehr innerhalb der durch die Netzwerk-Bandbreite gesetzten Grenzen bleibt, wird die Netzwerkleistung annehmbar bleiben. Jedes Mal, wenn Spitzen-Netzwerklasten jedoch die Kapazität übersteigen, wird die beschriebene Abwärtsspirale erneut beginnen, wodurch zunehmende Perioden schlechter Netzwerkleistung verursacht werden.
  • Wie weiter oben diskutiert wurde, kann ein Browser-Programm genutzt werden, um über das Internet auf Webseiten zuzugreifen und diese zu betrachten, indem die Zieladresse (das heißt die Internetadresse) der gewünschten Webseite eingegeben wird oder, was verbreiteter ist, indem über automatische Verknüpfungen auf Webseiten zugegriffen wird. Häufig genutzte Browser sind Lynx, NCSA Mosaic, Netscape Navigator und der Microsoft Internet Explorer. Die gewünschte Webseite wird durch einen Uniform Resource Locator („URL", ein Adressierungssystem) angegeben, der die genaue Zielad resse der Datei unter Verwendung der Syntax http://internet.address/directory/filename.html angibt.
  • Webseiten werden normalerweise in Bezug auf Layout und Content mittels einer als „HTML" (Hyper Text Markup Language) bekannten Sprache beschrieben. Ein konkreter mit dem Internet verbundener Computer kann eine Webseite oder mehrere Webseiten, das heißt Computerdateien im HTML-Format, zwecks Zugriff durch Benutzer speichern.
  • Automatische Verknüpfung von einer HTML-Webseite zu einer anderen wird wie folgt erzielt. Der Benutzer greift zuerst auf eine Webseite mit einer bekannten Adresse, die oft auf dem Computer an dem ISP (Internet Service Provider, Internetdienstleister) des Benutzer belegen ist, zu. Der ISP ist die Organisation, die Internetkonnektivität für den Benutzer bereitstellt. Diese Webseite kann zusätzlich zu Textdaten und Bilddaten, die in dem HTML-Format spezifiziert sind, „Links" oder eingebettete Informationen (in Form von URLs) enthalten, die auf die Internetadresse anderer Webseiten hinweisen, die sich häufig auf anderen Computern in dem gesamten Internet befinden. Der Benutzer kann danach auf andere Webseiten zugreifen, die wiederum weitere Daten und/oder zusätzliche Links enthalten können, indem ein Link ausgewählt wird (häufig durch Zeigen und Klicken mit einer Maus).
  • Verschiedene Erweiterungen zu HTML, wie zum Beispiel die Markierung EMBED von Netscape, ermöglichen Verweise auf andere Daten, die in Webseiten eingebettet sind. Einige Browser sind nicht in der Lage, andere Daten als Textdaten und Bilddaten zu handhaben. Andere Browser können die Daten auf verschiedene Arten handhaben. NCSA Mosaic zum Beispiel handhabt Verweise auf unbekannte Arten von Daten, indem zugelassen wird, dass die Daten auf den Computer des Benutzers heruntergeladen werden und indem danach wahlweise ein externes Programm aufgerufen wird, um die Daten anzusehen oder zu bearbeiten. Jüngste Versionen des Netscape Navigator und des Microsoft Internet Explorer führen dieses Konzept noch einen Schritt weiter: eine Browser-Erweiterung oder ein „Plug-in" kann automatisch aufgerufen werden, um die Daten zu handhaben, wenn diese von einer Fern-Webseite empfangen werden. Andere Mittel, wie zum Beispiel in der Sprache Java (oder in einer ähnlichen Sprache) ge schriebene Netzwerkprogramm-„Applets", können genutzt werden, um die Funktionalität der Browser-Umgebung oder eines Netzwerkes zu erweitern.
  • Digitale Multimediadaten können äußerst hohe Speicher- und Bandbreiten-Anforderungen aufweisen. Insbesondere können Videodateien sehr groß sein, von etwa zehn Megabyte bis zehn Gigabyte. Um Videodateien mit Geschwindigkeiten, die sich an ihre Aufzeichnungsgeschwindigkeiten annähern, an dem Endgerät des Benutzers wiedergeben zu können, müssen die Dateien mit einer hohen konstanten Geschwindigkeit abgegeben werden. Ist die Wiedergabe zu langsam, wird das Bild langsamer wiedergegeben, als es ursprünglich aufgezeichnet wurde. Wenn die Geschwindigkeit ungleichmäßig ist, erscheint das Video ruckartig, wie ein alter Spielfilm.
  • Die oben diskutierten Zugeständnisse in der Netzwerk-Auslegung haben im Allgemeinen eine nachteilige Auswirkung auf die Übertragung von Audio- und Videodaten über das Internet. Während ein Benutzer, der einen Browser nutzt, um in dem Web zu „surfen", geringfügigere Verzögerungen und Schwankungen der Übertragungsgeschwindigkeit während des Abrufens von Text und Standbildern gegebenenfalls überhaupt nicht wahrnimmt, werden solche Fehler offensichtlich und signifikant, wenn auf Echtzeit-Audio- und Echtzeit-Video-Informationen zugegriffen wird.
  • In einem Versuch, diese Probleme zu lösen, verbreiten Internet-Content-Anbieter mitunter beliebten Content um das Internet auf verschiedenen Servern oder Abgabe-Sites, die als „Spiegel-Sites" bekannt sind. Jede Spiegel-Site enthält Informationen, die im Wesentlichen identisch mit denen der Original-Site sind. Wenn zum Beispiel eine beliebte Website in New York belegen ist, können sich Spiegel-Sites in Los Angeles, in London und in Tokio befinden. Wenn dementsprechend ein europäischer Benutzer Schwierigkeiten hat, auf die originale New Yorker Site zuzugreifen, kann er eine automatische Verknüpfung mit der Spiegel-Site herstellen, die für ihn geographisch am nahesten gelegen ist, das heißt London.
  • Spiegel-Sites weisen jedoch mehrere Nachteile auf. Spiegel-Sites können zum Beispiel geographisch weit verbreitet sein, sind jedoch gegebenenfalls in Bezug auf tatsächliche Nutzung, Netzwerkverkehr u.s.w. nicht wirksam verteilt. So können die Spiegel-Sites von New York und von Los Angeles mit dem Netzwerk des gleichen nationalen Internet-Dienstanbieters verbunden sein, was bedeutet, dass Schwierigkeiten beim Zugriff auf eine Site auch die andere beeinträchtigen können.
  • Weiterhin sind Spiegel-Sites gegebenenfalls nicht optimal platziert, um die Last auf den einzelnen Servern zu reduzieren. Obwohl man eine „durchdachte Annahme" vornehmen kann, wo eine Spiegel-Site platziert werden sollte, können die tatsächlichen Nutzungsmuster unterscheiden. Weiterhin gibt es keine Garantie für verbesserte Leistung. Die Bandbreite der Spiegel-Site kann kleiner sein als die der Original-Site, oder sie kann aus anderen Gründen überlastet sein.
  • Darüber hinaus werden Spiegel-Sites häufig auf freiwilliger Basis gehostet. Wenn eine Website äußerst beliebt ist und wenn ein Dienstanbieter entscheidet, dass der Inhalt für seine Teilnehmer von Interesse sein kann, kann sich dieser Anbieter bereit erklären, eine Spiegel-Site der originalen Website zu hosten. Eine solche Vereinbarung wäre für den Host der Spiegel-Site attraktiv, da Menschen von der Spiegel-Site angezogen werden und gegebenenfalls automatische Verknüpfungen zu anderem dort gehosteten Content herstellen können. Andererseits sind solche freiwilligen Bündnisse nicht zuverlässig und können zu jeder Zeit wieder gelöst werden.
  • Kurz gesagt, bietet eine Spiegel-Site eine zweite Quelle für Daten, die verfügbar sein kann oder nicht und die den Benutzerkomfort verbessert, die jedoch das Problem der Netzwerk-Bandbreite oder der Leistungsfähigkeit nicht löst. Eine Spiegel-Site bestimmt nicht die Leistungsmerkmale des Netzwerkes und identifiziert keine verfügbare Bandbreite, die verwendet werden kann, um Videodaten wirksam zu übertragen, und die gleichzeitig die Vorteile der vorhandenen günstigen Preisbildungssysteme, wie zum Beispiel die an dem Internet, nutzt.
  • Gegenwärtig gibt es keine Richtlinie für die Auswahl optimaler Orte für Abgabe-Sites, und es gibt kein bekanntes Verfahren, das es dem Benutzer ermöglicht, zu entscheiden, mit welcher Spiegel-Site er sich verbinden soll, die optimale Leistung gewährleisten wird. In der Tat ist die Nutzung einer herkömmlichen Spiegel-Site freiwillig. Typischerweise wird der Benutzer versuchen, auf die Original-Site (oder auf eine bekannte Spiegel-Site) zuzugreifen, und nur dann auf eine andere Spiegel-Site wechseln, wenn die Leistung nach einem Versuch oder nach mehreren Versuchen für ungenügend be funden wird. Dieses Herangehen ist eine ineffiziente Nutzung von Netzwerkressourcen. Spiegel-Sites sind eindeutig keine optimale Lösung für das Problem der überlasteten Websites. Ein wesentlicher Grund dafür ist die Nichtberücksichtigung der Netzwerkleistung.
  • Netzwerkanalyse, insbesondere der Leistung bestimmter Pfade und Verbindungen über das Internet, ist hinlänglich bekannt und entwickelt. Zum Beispiel ermöglicht das Ping-Programm, dass ein mit dem Internet verbundener Computer entscheiden kann, ob auf einen Fernhost zugegriffen werden kann. Jedoch verwendet das Ping-Programm ein Netzwerkprotokoll niedriger Priorität, das als das ICMP-Protokoll bekannt ist, und demzufolge stellt es keine aussagefähigen Leistungsanalyse-Informationen bereit. Das Traceroute-Programm verfolgt die Übertragung einer Nachricht von einem Computer zu einem Fernhost und verfolgt dabei Verzögerungen entlang der einzelnen Verbindungen und bestimmt den von der Nachricht genommenen Pfad. Die Traceroute-Anwendung kann verwendet werden, um den Fluss von Daten abzubilden. Sie ist jedoch nicht in der Lage, aussagefähige Leistungsanalyse-Informationen bereitzustellen. Sie stellt nur Informationen für eine Nachricht bereit, die sich in einer Richtung ausbreitet, und nur für einen Zeitpunkt.
  • Darüber hinaus werden nur die Konnektivitätsmerkmale des Pfades, der zu und von dem Einzelcomputer führt, der die Versuche durchführt, typisch ermittelt. Eine Ausweitung der Versuche ist möglich, jedoch logistisch unausführbar, da das Internet so groß ist.
  • Herkömmliche Netzwerk-Analyseverfahren, wie zum Beispiel „Ping"-Programme oder „Traceroute"-Programme, bieten eine Ansicht der Netzwerkkonnektivität, geben jedoch wenig Aufschluss darüber, welche Leistung von den Anbietern und den Spiegel-Sites über das Internet erwartet werden kann. Daher können lediglich „Annahmen" dazu gemacht werden, wo Spiegel-Sites platziert werden sollten oder welche Spiegel-Sites genutzt werden sollten, um die Leistung zu optimieren.
  • Da die Videoabgabe über das Internet rasch an Beliebtheit gewonnen hat, besteht ein Bedarf nach einem System, das sicherstellen kann, dass der Videoabruf des Benutzers in den meisten Fällen durch einen Videoclip erfüllt werden kann, der in einem komprimierten Format gespeichert ist, das von einem CODEC auf dem Endgerät des Benutzers erkannt werden kann, so dass für den Benutzer die Notwendigkeit, ein neues CODEC-Programm herunterzuladen, eliminiert oder wenigstens reduziert wird.
  • Ein weiterer Bedarf besteht an einem Verfahren der Ermittlung der Gesamtnetzwerkleistung. Ein weiterer Bedarf besteht an einem System zur Anwendung dieses Verfahrens, um Content Provider in die Lage zu versetzen, Daten-Abgabe oder Spiegel-Sites dynamisch an optimalen Netzwerkstandorten zu platzieren und um es den Benutzern zu ermöglichen, optimale Spiegel-Sites auszuwählen, von denen sie Daten empfangen können.
  • KURZFASSUNG DER ERFINDUNG
  • Die Erfindung betrifft ein System und ein Verfahren für die optimierte Verteilung von Web Content zu und von Sites, die um das Internet platziert sind. Ein intelligentes Spiegelungssystem, das auch als „Smart Mirroring" bezeichnet wird, wird verwendet, um den Bedarf an und die Verteilung von Spiegel-Sites zu ermitteln und um Benutzer-Abrufe nach bestimmtem Web Content an eine optimale Spiegel-Site weiterzuleiten. Ein Formatauswahlsystem wird verwendet, um automatisch eine Videoclipdatei auszuwählen, die in einem Format komprimiert ist und auf einem Benutzer-Endgerät läuft.
  • Eine Reihe von „intelligenten" Abgabe- oder Spiegel-Sites werden verwendet, um beliebten Web Content auf verschiedene Teile des Internets zu verteilen. Ein umfassendes System der Netzwerkanalyse auf der Grundlage von Versuchen, die von einer großen Anzahl von Benutzern durchgeführt werden, wird verwendet, um die bevorzugten Standorte für die Sites interaktiv zu ermitteln und um die optimalen Standorte zu bestimmen, die durch jeden einzelnen Benutzer verwendet werden sollen.
  • Dementsprechend und da jeder einzelne Benutzer zu einem Smart Mirror oder zu einer Abgabe-Site geleitet wird, der oder die verbesserte Leistung bereitstellt, wird die Gesamt-Netzwerküberlastung reduziert. In den meisten Fällen ist der verbesserte Server elektronisch nahe an einem Benutzer angeordnet, um die Anzahl von Netzwerkverbindungen zu verringern, über die die Daten gehen müssen, wodurch Paketverlust und Verzögerung reduziert werden.
  • Weiterhin ermöglichen die Ergebnisse der Netzwerkanalyse, dass Nachrichtenverkehr von Abgabe-Sites und Netzwerkbereichen, die bereits überlastet sind, weg geleitet und zu untergenutzten Servern und Netzwerken hin geleitet werden kann. Dies führt zu einer Verbesserung des Durchsatzes aus der Sicht des einzelnen Benutzers und wird dadurch den Anreiz des von den Content Providern unter Verwendung des Systems angebotenen Content erhöhen. Content Provider sind in der Lage, eine größere Anzahl von Benutzern über das Internet zu erreichen, ohne wesentliche Verringerungen der Leistung hinnehmen zu müssen.
  • Ein System gemäß der Erfindung beginnt mit einer Original-Website und wenigstens einer zusätzlichen Abgabe-Site (oder Spiegel-Site). Jedem Benutzer, der das System benutzen möchte, wird in einem bevorzugten Ausführungsbeispiel Software bereitgestellt, die ein Konfigurationshilfsprogramm und ein Clientprogramm umfasst. Das Konfigurationshilfsprogramm wird zuerst genutzt, um zu bestimmen, welche Abgabe-Sites verbesserte Leistung für den jeweiligen Benutzer bereitstellen.
  • In einem Ausführungsbeispiel der Erfindung lädt das Konfigurationshilfsprogramm zuerst eine „Abgabe-Site-Datei" von einem Dienstanbieter herunter. Diese Abgabe-Site-Datei enthält eine Liste verfügbarer Abgabe-Sites und eine Liste von Netzwerkversuchen, die durchzuführen sind. Die Arten von Versuchen und die Häufigkeit der Durchführung können in der Abgabe-Site-Datei in Abhängigkeit von der Anzahl der Benutzer, die das Netzwerk erproben, und dem geschätzten Abfluss am Netzwerk oder der Abgabesystem-Kapazität vorgegeben werden.
  • Das Konfigurationshilfsprogramm wird eine Teilmenge der in der Abgabe-Site-Datei vorgegebenen Versuche laufen lassen. Die Versuchsergebnisse zeigen, welche Abgabe-Sites verbesserte Leistung für den Benutzer ergeben, und enthalten weiterhin Informationen zu verschiedenen verallgemeinerten Netzwerkfähigkeiten von dem Standpunkt des Benutzers, der die Versuche durchführt. Die Netzwerk-Versuchsergebnisse und die Identität der ausgewählten Abgabe-Site werden zwecks Einarbeitung in die Datenbank des Dienstanbieters (per E-Mail in einer möglichen Konfiguration) zu dem Abgabedienstanbieter zurückgesendet.
  • Die von dem Konfigurationshilfsprogramm ausgewählte Abgabe-Site wird danach von dem betreffenden Benutzer zum Abrufen des gesamten von dem Abgabesystemprovider verwalteten Contents genutzt. Wenn demzufolge ein Benutzer im Webcontent browst und eine besondere Position findet, wie zum Beispiel einen Videoclip, der von dem Abgabesystem des Dienstanbieters verwaltet wird, wird die Client-Software diese automatisch von der vorgegebenen „Smart Mirror" Abgabe-Site abrufen. Site-Präferenzen und Standard-Sites können regelmäßig auf Anfrage zu vorgegebenen Zeiten oder als Reaktion auf Veränderungen in der Netzwerklast und dem Netzwerkverkehr aktualisiert werden.
  • Da darüber hinaus das Konfigurationshilfsprogramm der Erfindung verschiedene Netzwerkprüfungen durchführt und die Prüfergebnisse dem Dienstanbieter zur Verfügung stellt, stehen wertvolle Daten zur System- und Netzwerkleistung zur Verfügung. Die genannten Daten liefern Informationen darüber, welche „Smart Mirror" Abgabe-Sites effektiv arbeiten und welche dies nicht tun, welche Smart-Mirror-Abgabe-Sites überlastet sind und welche Abschnitte des Internet von der Zugabe weiterer Abgabe-Sites oder Kapazität profitieren könnten.
  • Diese Daten ermöglichen auch die Durchführung solcher ausgereifter Netzwerkanalysen, wie zum Beispiel End-zu-End-Leistungsmessungen, Lastprofilbewertungen, Leitwegstabilität und Ausfallmessungen. Vom technischen Standpunkt aus kann der Spiegel-Dienstanbieter somit gewährleisten, dass verbesserte Leistung bereitgestellt wird. Aus der Sicht des Marketing kann den Content Povidern mitgeteilt werden, wo Smart Mirrors oder Abgabe-Sites für verbesserte Leistung platziert werden müssen und welcher Internet-Service-Provider verbesserte Abgabe anbietet.
  • Eine Webseite, die einen eingebetteten Videoclip hostet, enthält auch einen Schlüssel zum Aktivieren des Smart Mirroring und der Formatauswahl. Dementsprechend speichert ein erfindungsgemäßes Videoclip-Auswahl- und Abrufsystem jeden Videoclip an verschiedenen Stellen in einer Reihe von verschiedenen Komprimierungsformaten. Ein Formatauswahlmodul umfast Softwareprogramme, die das Benutzer-Endgerät anweisen, zu ermitteln, welche CODEC-Programme in einem Benutzerendgerät gespeichert sind, einen bevorzugten CODEC zum Gebrauch auszuwählen, einen in einem Komprimierungsformat, das von dem bevorzugten CODEC erkannt wird, gespei cherten Videoclip zu lokalisieren und eine Videoabfrage so umzuleiten oder zu ändern, dass das Video-Abgabesystem den gewünschten Clip lokalisieren und abrufen kann. Wenn kein geeigneter CODEC erkannt wird, fordert das Formatauswahlmodul den Benutzer auf, einen bevorzugten CODEC herunterzuladen und zu installieren.
  • In einem ersten Ausführungsbeispiel des Formatauswahlmoduls wird ein Videoclip in einer Reihe verschiedener Komprimierungsformate an einzelnen Abgabe-Sites, die mit dem Internet verbunden sind, gespeichert. Der Videoclip und seine Adresse werden auf der Webseite, die Zugang zu dem Server bietet, angegeben. Die Webseite enthält weiterhin ein eingebettetes Softwareprogramm, um das Benutzer-Endgerät aufzufordern, zu ermitteln, welche CODECs in dem Endgerät installiert sind. Das eingebettete Programm wird automatisch ausgeführt, wenn der Benutzer einen Videoclip anfordert, der auf der Webseite angegeben wird. Wenn die Abfrage das Vorliegen eines CODEC, der einen auf einem der Server gespeicherten Videoclip dekomprimieren kann, erkennt, wird das eingebettete Programm diesen CODEC auswählen und den entsprechenden Videoclip anfordern.
  • In einem zweiten Ausführungsbeispiel des Formatauswahlmoduls wird ein relativ kleines Programm auf dem Browser als „Plug-in" oder ähnliches installiert. Das „Plug-in"-Ausführungsbeispiel führt die gleichen Funktionen aus wie das in dem vorhergehenden Ausführungsbeispiel beschriebene eingebettete Softwareprogramm und weist die hinzugefügte Funktionalität des Zusammenwirkens mit den oben beschriebenen Smart-Mirror-Einrichtungen auf.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Blockschaltbild einer veranschaulichenden Netzwerktopologie eines erfindungsgemäßen Systems, einschließlich mehrerer Benutzer und mehrerer Content Provider.
  • 2 ist ein Fließbild und beschreibt den Betrieb des Konfigurationshilfsprogramms, das in dem erfindungsgemäßen System verwendet wird.
  • 3 ist ein Fließbild und beschreibt den Betrieb eines Clientprogramms, das in einem erfindungsgemäßen System verwendet wird.
  • 4 ist ein Fließbild und beschreibt den Betrieb eines Ausführungsbeispiels eines eingebetteten Programms des erfindungsgemäßen Formatauswahlmoduls.
  • 5 ist ein Fließbild und beschreibt den Betrieb eines „Plug-in"-Ausführungsbeispiels des erfindungsgemäßen Formatauswahlmoduls.
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
  • Die Erfindung wird unten unter Bezugnahme auf ausführliche veranschaulichende Ausführungsbeispiele beschrieben werden. Es wird offensichtlich werden, dass die Erfindung in einer breiten Vielzahl von Formen ausgeführt werden kann, wobei einige derselben stark von den offengelegten Ausführungsbeispielen abweichen können. Demzufolge sind die konkreten in dieser Schrift offengelegten strukturellen und funktionalen Details lediglich repräsentativ und begrenzen den Erfindungsbereich nicht.
  • Unter Bezugnahme auf 1 wird das Internet 10, das allgemein repräsentativ für Weitverkehrskommunikationsnetze genannt wird, als „Wolke" dargestellt. Das Internet ist bekanntermaßen ein Verbundnetz einer großen Anzahl von Computern. Wenngleich mit dem Internet verbundene Computer, die „geografisch" nahe beieinander liegen, in dem Internet „elektronisch" nahe beieinander liegen können, ist dies üblicherweise nicht der Fall. Jedoch kann ein mit dem Internet verbundener Computer mit einem beliebigen anderen mit dem Internet verbundenen Computer kommunizieren; die Nachricht wird höchstwahrscheinlich über einen Weg wandern, der eine Folge von Links oder „Sprüngen" zwischen Computern umfasst, die direkt miteinander verbunden sind.
  • Ein erstes Benutzer-Endgerät 12 wird ebenfalls in 1 dargestellt. Das erste Benutzer-Endgerät 12 ist mit einem Internet-Service-Provider (ISP) 14 verbunden, der typischerweise nichts anderes als ein Computer, ein Router oder ein Endgerät-Server ist, die mit dem Internet 10 verbunden sind. Ein ISP 14 kann zusätzliche Benutzer-Endgeräte hosten, wie zum Beispiel ein zweites Benutzer-Endgerät 16. Andere ISPs, wie zum Beispiel der zweite ISP 18, sind ebenfalls mit dem Internet 10 verbunden. Ein drittes Benutzer-Endgerät 20 wird als mit dem zweiten ISP 18 verbunden gezeigt. Es werden nur drei Benutzer-Endgeräte gezeigt; es ist jedoch zu berücksichtigen, dass die Anzahl der überlappenden Benutzer der Erfindung unbegrenzt ist, vorbehaltlich der unten genannten betriebstechnischen Details.
  • Wie dem Durchschnittsfachmann hinlänglich bekannt ist, sind auch Content Provider mit dem Internet 10 verbunden. Ein erster Content Provider 22 kann eine bestimmte Art von Content bereitstellen, wie zum Beispiel Sportergebnisse und sportliche Höhepunkte. Ein zweiter Content Provider 24 kann eine andere Art von Content bereitstellen, wie zum Beispiel Geschäftsnachrichten.
  • Wenn ein Benutzer (wie zum Beispiel derjenige, der das erste Benutzer-Endgerät 12 nutzt) bislang wünschte, auf den Content zuzugreifen, den der erste Content Provider 22 bereitstellte, führte das Endgerät 12 eine Anfrage direkt bei dem ersten Content Provider 22 durch. Eine Anfragenachricht wurde von dem Endgerät 12 über das Internet 10 an den Content Provider 22 übergeben. Der Content Provider 22 sendete die gewünschten Daten über das Internet 10 zu dem Endgerät 12 zurück.
  • In 1 werden mehrere Abgabe-Sites oder „Spiegel"-Sites als mit dem Internet 10 verbunden gezeigt. Eine erste Abgabe-Site 26 kann eine kleine Anzahl von „Sprüngen" von dem ersten Benutzer-Endgerät 12 entfernt angeordnet sein. Die erste Abgabe-Site 26 umfasst ein Speichermodul 27 zum Speichern von Content, wie zum Beispiel von Audio-/Videoclips. Eine zweite Abgabe-Site 28 kann weiter von dem ersten Benutzer-Endgerät 12 entfernt sein, jedoch nahe an dem dritten Benutzer-Endgerät 20. Eine dritte Abgabe-Site 30 kann ebenso nahe an dem dritten Benutzer-Endgerät 20 sein wie die zweite Abgabe-Site 28. Wie bereits angemerkt wurde, sind ein Benutzer und ein Provider oder eine Abgabe-Site, die „geographisch" nahe beieinander liegen, „elektronisch" in dem Internet gegebenenfalls nicht nahe beieinander. Indem der „elektronische" Abstand zwischen dem Benutzer und dem Provider oder der Abgabe-Site verringert wird, wird die Anzahl der Netzwerkverbindungen und der Router, über die die Daten wandern müssen, reduziert.
  • Wie weiter oben bereits diskutiert wurde, wirkt das Smart-Mirroring-System, um die Netzwerkleistung zu verbessern, indem das Auftreten der oben genannten Netz werkprobleme verringert wird. Die Probleme von Paketverlust und Übertragungsverzögerung werden im Allgemeinen geringer, wenn die Anzahl der Netzwerkverbindungen, über die die Daten wandern müssen, reduziert wird, wenngleich das erfindungsgemäße Netzwerkprüfverfahren in einigen Fällen zeigt, dass der Durchsatz über einige längere Wege besser ist als der über einige kürzere Wege. Sehr geringer Paketverlust und im Wesentlichen keine Verzögerung tritt in dem Netzwerkkabel auf; sie werden typischerweise durch überlastete Netzwerkspeicher und Routinggeräte verursacht. Da die erfindungsgemäßen Smart-Mirror-Sites elektronisch nahe einem jeden Benutzer platziert sind, werden Paketverluste und Verzögerung reduziert. Das Problem übermäßiger Servernutzung wird reduziert, da mehrere Abgabe-Sites die Last teilen, die typischerweise von einem einzigen Server zu bewältigen wäre. Die relativ geringe Kapazität der Netzwerk-Infrastruktur wird in geringerem Maße zu einem Problem, da Daten, die von parallelen Abgabe-Sites an verschiedenen Orten im Allgemeinen nicht über die gleichen Netzwerkverbindungen wandern müssen.
  • Für den Zweck der Beschreibung der hier vorliegenden Erfindung ist eine Abgabe-Site ein Knoten" an dem Netzwerk, der Datendateien oder andere Dateien, wie zum Beispiel Softwarecode, zur Abgabe speichern kann. Der Ausdruck kann auch eine Site umfassen, die für Datenabgabe verantwortlich ist, einschließlich von Spiegel-Sites, Content Provider und Server für die Übertragung von Videoströmen oder Websites.
  • In dem System ist ein Mirror-Service-Provider (MSP) 32 mit dem Internet 10 verbunden. Der MSP 32, der eine Verwaltungsfunktion über die Verteilung von Abgabe-Sites 26, 28 und 30 sowie über die Zuordnung von Anfragen an die originalen und Abgabe-Sites von den Benutzer-Endgeräten 12, 16 und 20 ausübt, umfasst eine Datenbank, die in der Lage ist, Daten über das Internet 10 zu senden und zu empfangen.
  • Diese Verwaltungsfunktion wird durch die Nutzung eines Konfigurationshilfsprogramms 34 und eines Clientprogramms 36, die in einem Speichermedium (das heißt in einem Direktzugriffsspeicher oder RAM) auf dem Benutzer-Endgerät 12 laufen, ermöglicht. Wenngleich das Konfigurationshilfsprogramm 34 und das Clientprogramm 36 in 1 nur als Teil des ersten Benutzer-Endgerätes 12 gezeigt werden, ist zu beachten, dass beliebige Benutzer-Endgeräte, wie zum Beispiel die Endgeräte 16 und 20, die an dem System beteiligt sind, die genannten Programme nutzen werden. Ein Benutzer, der an dem System teilnehmen möchte, kann die Software, die das Konfigurationshilfsprogramm 34 und das Clientprogramm 36 umfasst, direkt von dem MSP 32 erwerben oder durch herkömmliche Verkaufskanäle oder andere Kanäle (wie zum Beispiel indem er Teil des Browser- oder Betriebssystems des Computers ist). Es ist zu beachten, dass die von dem Konfigurationshilfsprogramm 34 in dem beschriebenen Ausführungsbeispiel der Erfindung ausgeführten Funktionen in die allgemeine Internet-Anwendungssoftware integriert werden können, wie zum Beispiel eine Browser- oder eine andere Netzwerkanwendung; ein selbstständiges Programm ist nicht erforderlich.
  • Konfigurationshilfsprogramm
  • In einem bevorzugten Ausführungsbeispiel muss das Konfigurationshilfsprogramm 34 von dem Benutzer ausgeführt werden, entweder über Befehl oder automatisch, bevor das Benutzer-Endgerät 12 Zugang zu dem System erhält. Der Betrieb des Konfigurationshilfsprogramms 34 wird in 2 im Detail gezeigt.
  • Wenn es zuerst auf dem Benutzer-Endgerät 12 ausgeführt wird, ruft das Konfigurationshilfsprogramm 34 eine Abgabe-Site-Datei von dem MSP 32 ab (Schritt 40) (1). Wenn der Benutzer bereits über eine Abgabe-Site-Datei verfügt ((wenn diese zum Beispiel zusammen mit dem Konfigurationshilfsprogramm 34 empfangen wurde) und wenn diese Abgabe-Site-Datei hinreichend neu ist, kann die Abgabe-Site-Datei von der lokalen Festplatte des Benutzer-Endgerätes 12 angerufen werden. Diese Abgabe-Site-Datei enthält eine Liste aller verfügbaren Abgabe-Sites (wie zu Beispiel der Abgabe-Sites 26, 28 und 30) sowie eine Liste von Netzwerkprüfungen, die an dem Benutzer-Endgerät 12 durchzuführen sind. In dem Kontext der Erfindung kann es lediglich zwei Abgabe-Sites geben beziehungsweise, insofern die Anzahl der Benutzer dies rechtfertigt, auch mehrere tausend. Die Anzahl der Sites ist prinzipiell unbegrenzt, wobei eine jede verfügbare Abgabe-Site in der Abgabe-Site-Datei dargestellt wird.
  • Die Abgabe-Site-Datei wird durch die Datenbank innerhalb des Computersystems des MSP erstellt. Die Datenbankanwendung nutzt Informationen über den Benutzer, um dynamisch die optimalen durchzuführenden Prüfungen zu bestimmen. Demzufolge muss die Abgabe-Site-Datei keine Einträge für jede vorhandene Abgabe-Site ent halten; die Liste kann so ausgelegt sein, dass sie lediglich diejenigen Sites enthält, die angemessen oder technisch machbar erscheinen.
  • Anfangs ist die Größe der Laufzeitschwankung in den Prüfkonfigurationen für die Benutzer des Abgabesystems gering; das heißt, die erste Gruppe von Benutzern führt im Wesentlichen die gleichen Prüfungen durch. Wenn der Abgabedienst zunimmt, wird die Intensität der Prüfung eines jeden Benutzers jedoch reduziert, um die zunehmende Größe der Prüfungen im gesamten Netzwerk auszugleichen. Der Umfang der Prüfungen und die Anzahl der überprüften Abgabe-Sites können eingeengt werden, um die Gesamtlast der Netzwerkprüfung weiter zu reduzieren.
  • In einem Ausführungsbeispiel wird die Abgabe-Site-Datei im Allgemeinen ein Format wie folgt aufweisen:
    • 1. Datei-Revisionsnummer und Nachricht. Die Datei umfasst dieses Feld, um zu bestimmen, ob eine neue Version des Konfigurationshilfsprogramms 34 verfügbar ist. Wenn die Revisionsnummer in der Abgabe-Site-Datei höher ist als die Versionsnummer für das Konfigurationshilfsprogramm, ist Konfiguration nicht zulässig. Anstelle dessen wird der Benutzer aufgefordert, eine neuere Version des Konfigurationshilfsprogramms 34 zu erlangen. Die hierin beschriebene Überprüfung der Dateirevision stellt sicher, dass die jeweils aktuellen Abgabe-Site-Auswahl-Algorithmen auf die von dem Konfigurationshilfsprogramm 34 erzeugten Prüfdaten angewendet werden.
    • 2. Eine Liste verfügbarer Smart-Mirror-Abgabe-Sites. Für eine jede verfügbare Abgabe-Site werden die folgenden Informationen bereitgestellt:
    • a. Name des Hosts. In dem bekannten Internetformat von www.server.com.
    • b. IP-Adresse. Eine numerische Internetadresse in dem bekannten Format. Die Adresse ist gegenwärtig eine 32-Bit-Zahl des Formats w.x.y.z., wobei w, x, y und z jeweils in dem Bereich von 0 bis 255 liegen.
    • c. Ausweichname. Ein inoffizieller Name, wie zum Beispiel „Die Erste Spiegel-Site".
    • d. Eine Liste der durchzuführenden Prüfungen. Für jede Prüfung werden die folgenden Informationen bereitgestellt:
    • i. Prüf-ID. Jede Art von Prüfung hat ein eindeutiges Kennzeichen, das dem Konfigurationshilfsprogramm 34 bekannt ist.
    • ii. Bewertungsfaktor. Jede Prüfung wird durch einen vorgegebenen Prozentsatz gewichtet.
    • iii. Häufigkeit. Die einzelnen Prüfungen werden nicht mit Notwendigkeit jedes Mal durchgeführt. Dieses Feld gibt eine Wahrscheinlichkeit an, wodurch bestimmt wird, wie oft eine konkrete Prüfung durchgeführt wird.
    • iv. Zusätzliche Informationen (wahlweise). Für bestimmte Prüfungen können zusätzliche Informationen erforderlich sein.
    • e. Site-Präferenzebene. Einer jeden Site kann eine gewichtete oder Präferenzebene zugewiesen werden, die zum Beispiel zwischen 1 und 100 liegen kann. Wie weiter unten diskutiert werden wird, werden die Gesamtdaten der Datenbank des MSP verwendet, um Netzwerknutzungsanalyse durchzuführen, bei der nur die Momentan-End-zu-End-Prüfung eines einzelnen Benutzers durchgeführt wird. Der hierbei bereitgestellte Bewertungsfaktor wird verwendet, um die von der Datenbank des Dienstanbieters empfangenen Prüfergebnisse einzuarbeiten. Der Bewertungsfaktor wird weiterhin verwendet, um die Zuteilung neuer Benutzer zu einer Abgabe-Site zu begrenzen, nachdem ein vorgegebenes größtes Nutzungsniveau erreicht worden ist.
    • f. Prüf-Site-Kennzeichen. Wenn dieses Kennzeichen freigegeben wird, werden die oben genannten Prüfungen durchgeführt, jedoch wird die Site nicht als Abgabe-Site zugeordnet werden, und zwar auch dann nicht, wenn sie die beste Leistung liefert.
    • g. Content-Provider-Gruppen. Eine jede Site kann zu einer Content-Provider-Gruppe oder zu mehreren Content-Provider-Gruppen gehören, wobei nur bestimmter Content gespiegelt wird. Wenn ein Benutzer an den von einer jeweiligen Abgabe-Site gehosteten Art von Daten nicht interessiert ist, muss diese nicht geprüft werden.
  • Das Konfigurationshilfsprogramm 34 fragt sodann von dem Benutzer verschiedene Positionen von Informationen ab (Schritt 42), die in dem Konfigurationsprozess benötigt werden, wie zum Beispiel den Namen des Benutzers, die E-Mail-Adresse, das Passwort, die Modemgeschwindigkeit und Informationen in Bezug auf die Zugangskontrolle (zum Beispiel welche Ebenen von verschiedenen Attributen der Benutzer einsehen kann). Der Zugangskontrollmechanismus wird weiter unten ausführlich diskutiert werden. In einem Ausführungsbeispiel der Erfindung werden die von dem Benutzer empfangenen Informationen verschlüsselt und in einer Konfigurationsdatei auf dem Benutzer-Endgerät 12 gespeichert.
  • Das Konfigurationshilfsprogramm 34 bestimmt danach, ob das Benutzer-Endgerät 12 mit dem Internet verbunden ist (Schritt 42). Wenn dies nicht der Fall ist, wird es eine Verbindung einleiten (Schritt 449) oder den Benutzer auffordern, dies zu tun.
  • Danach wird eine Reihe von Netzwerkprüfungen durchgeführt (Schritt 46). Eine Prüfung oder mehrere Prüfungen kann oder können für jede verfügbare Site, die in der Abgabe-Site-Datei aufgeführt wird, durchgeführt werden; nicht alle Sites in der Datei müssen geprüft werden.
  • Bei den folgenden Arten von Prüfungen wird gegenwärtig davon ausgegangen, dass sie zweckdienliche Daten liefern:
    • 1. Ping-Prüfung. Diese liefert Informationen darüber, ob ein Fernserver erreichbar ist, und wenn dies der Fall ist darüber, wie lange es dauert, bis eine Nachricht geringer Priorität von dem Benutzer-Endgerät 12 zu dem Fernserver und wieder zurück wandert. Die Ping-Prüfung ist eine einfache Prüfung, die die Entscheidung unterstützt, ob eine Site für weiterführende Bewertung zur Verfügung steht. Überschüssige Zeiten, die von der Ping-Anwendung zurückgegeben werden, können verwendet werden, um Abgabe-Systeme zu eliminieren, die für effektive Informationsabgabe bei weitem zu „langsam" sind. Diese Prüfung wird von dem Endgerät verwendet, um die Anzahl der zu prüfenden Abgabe-Sites zu reduzieren.
    • 2. Traceroute-Programm (ein Protokollierungsprogramm). Dieses liefert Informationen darüber, welchen Leitweg eine Nachricht von dem Benutzer-Endgerät 12 zu einem Fernserver nimmt, einschließlich darüber, welche Systeme entlang des Leitweges genutzt werden und wie lang ein jeder Sprung dauert. Das Traceroute-Programm wird durch das Konfigurationsprogramm 34 verwendet, um den Weg der Informationsübertragung zu dokumentieren. Mehrere Ablaufverfolgungen mit unterschiedlichen Ergebnis sen können anzeigen, dass die Stabilität des Leitweges von einem jeweiligen Benutzer zu einem jeweiligen Server nicht annehmbar ist. Von der Datenbank des Dienstanbietersystems bereits angesammelte Daten zu jeweiligen Leitwegen können ebenfalls die Entscheidung zur Auswahl einer jeweiligen Abgabe-Site für einen jeweiligen Benutzer beeinflussen. Die Leitwegstabilität ist hierbei die wichtigste Überlegung.
    • 3. Reverse-Traceroute-Programm. Dieses liefert Informationen darüber, welchen Leitweg eine Nachricht von einem Fernserver zu dem Benutzer-Endgerät nimmt, einschließlich darüber, welche Systeme entlang des Weges genutzt werden und wie lange jeder Sprung dauert. Das Reverse-Traceroute-Programm wird von dem Konfigurationsprogramm genutzt, um den Weg von Informationsempfang zu dokumentieren. Mehrere Ablaufverfolgungen mit unterschiedlichen Ergebnissen können anzeigen, dass die Stabilität des Leitweges von einem jeweiligen Server zu einem jeweiligen Benutzer nicht annehmbar ist. Von der Datenbank des Dienstanbietersystems bereits angesammelte Daten zu jeweiligen Leitwegen können die Entscheidung zur Auswahl einer jeweiligen Abgabe-Site für einen jeweiligen Benutzer ebenfalls beeinflussen. Auch hier ist die Stabilität die wichtigste Überlegung.
    • 4. Dynamic-Traceroute-Programm. Analog zu dem Traceroute-Programm oder dem Reverse-Traceroute-Programm, jedoch zwischen einem vorgegebenen Paar von Computern an dem Internet. Dynamic Traceroute wird von dem Konfigurationsprogramm verwendet, um einen Weg von Informationsübertragung zu dokumentieren. Mehrere Ablaufverfolgungen mit unterschiedlichen Ergebnissen können anzeigen, dass die Stabilität des Leitweges zwischen zwei Netzwerken nicht annehmbar ist. Von der Datenbank des Dienstanbieters bereits angesammelte Daten zu jeweiligen Leitwegen können die Entscheidung über die Auswahl einer jeweiligen Site für einen jeweiligen Benutzer ebenfalls beeinflussen. Wie oben bereits ausgeführt wurde, ist die Stabilität hierbei die wichtigste Überlegung.
    • 5. Name Server Resolution Delay. Wenn die numerische Internetadresse nicht vorgegeben ist, wird ein Namensserver-Nachschlagen durchgeführt, um zu bestimmen, welche numerische Adresse dem gewünschten Hostnamen entspricht. Dieser Prozess kann eine beachtliche Zeit in Anspruch nehmen.
    • 6. Durchsatz. Von dem Fernserver wird eine Probedatei heruntergeladen beziehungsweise teilweise heruntergeladen, um den Ist-Durchsatz in Bytes pro Sekunde zu bestimmen.
    • 7. Durchsatzschwankung. Von dem Fernserver wird eine Probedatei heruntergeladen beziehungsweise teilweise heruntergeladen, um zu bestimmen, ob der Durchsatz relativ konstant ist oder schwankt.
    • 8. Fehlerrate. Von dem Fernserver wird eine Probedatei heruntergeladen beziehungsweise teilweise heruntergeladen, um zu bestimmen, ob bei der Übertragung Übertragungsfehler auftreten. Diese Informationen erhält man, indem die Anzahl der an den Benutzer zurückgegebenen Fehlernachrichtenpakete gezählt wird, wodurch die Fehlerrate von dem Benutzer zu dem Server festgestellt wird, und indem die Anzahl der empfangenen Bytes als Anteil der übertragenen Bytes verfolgt wird, wodurch die Fehlerrate von dem Server zu dem Benutzer festgestellt wird.
    • 9. Paketfragmentierung. Von dem Fernserver wird eine Probedatei heruntergeladen beziehungsweise teilweise heruntergeladen, um zu bestimmen, ob bei der Übertragung Fragmentierung oder Fehlerpaketempfang auftritt.
    • 10. Kapazitätsanfrage. Wenn der Fernserver hierfür befähigt und freigegeben ist, wird das Konfigurationshilfsprogramm 34 eine Anfrage an den Server schicken, um dessen Übertragungskapazität und seine durchschnittliche Last zu bestimmen. Diese Informationen werden über das Simple Network Management Protocol („SNMP") erfasst, das von fast allen Internetservern unterstützt wird.
    • 11. Makroskopische Netzwerkanalyse. Die von der MSP-Datenbank gesammelten Daten ergeben eine allgemeine Übersicht über das Netzwerkverhalten. Diese Informationen ermöglichen es dem Benutzer des Smart-Mirror-Systems, eine historische Sicht der Leistung der verfügbaren Abgabe-Sites zu erhalten. Die akkumulierten Daten wenden von der Abgabe-System-Datenbank bearbeitet, um die Netzwerkleistung zu analysieren, um die Nutzung in Netzwerkbereichen mit hoher Kapazität zu akzentuieren, während die Nutzung in Bereichen, die bereits eine verringerte Leistung erfahren, deakzentuiert wird.
  • Informationen darüber, wie eine jede der vorgenannten Prüfungen durchgeführt wird, sind aus der herkömmlichen Netzwerkanalyse nach dem Stand der Technik hinlänglich bekannt. Siehe hierzu zum Beispiel Bob Quinn und Dave Shute, Windows Sockets Network Programming (Addison-Wesley 1996). In einem Ausführungsbeispiel der Erfindung wird die Überprüfung erzielt, indem eine „Ping-Prüfung" durchgeführt wird, um zu überprüfen, ob ein Server erreichbar ist, ebenso wie eine Reihe von kleinen Downloads (zum Beispiel 20K), eine Reihe von großen Downloads (zum Beispiel 200K) sowie „Traceroute-Prüfungen" und Reverse-Traceroute-Prüfungen", um die Abgabewege zu dokumentieren.
  • Die Traceroute-Informationen werden von dem MSP 32 verwendet, um Prüfdaten mit Informationen in seiner Datenbank zu korrelieren; auf diese Weise können insbesondere schlechte Netzwerkverbindungen und Server identifiziert werden. Diese Informationen werden in der oben genannten Abgabe-Site-Datei bereitgestellt; wenn eine jeweilige Verbindung oder ein jeweiliger Server ausgehend von von anderen Benutzern eingeholten Informationen als unzuverlässig bekannt sind, kann ein einzelner Benutzer davon weg geleitet werden, auch wenn eine Einzelprüfung gute Ergebnisse ergeben hat.
  • Die kurzen Downloads werden genutzt, um die Serverkapazität zu ermitteln. Die Namenserver-Auflösungsverzögerung kann durch eine solche Prüfung ermittelt werden, ebenso wie die Zeit, die ein Server benötigt, um das Senden von Daten zu beginnen. Das letztgenannte Ergebnis ist stark von der Serverlast, der Kapazität und der Leistung abhängig.
  • Die langen Downloads ermöglichen es dem Konfigurationshilfsprogramm 34, zu ermitteln, wie der Paketverlust, die Netzwerküberlastung und die Servernutzung die Datei-Abgabe beeinflussen. Es ist nicht ideal, auf der Grundlage der Ergebnisse von einem einzelnen Benutzer zu bestimmen, welcher der vorgenannten Faktoren verringerte Leistung verursacht. Die gesammelten Ergebnisse jedoch, die in der von dem MSP 32 vorgehaltenen Datenbank gespeichert werden, zeigen die zugrundeliegenden Ursachen an.
  • Es ist zu beachten, dass einige der Prüfergebnisse in Verbindung mit anderen Prüfergebnissen verwendet werden können. Die Last auf der Abgabe-Site, wie sie durch eine Kapazitätsabfrage ermittelt wird, kann zum Beispiel durch die Ergebnisse einer Durchsatzprüfung geteilt werden, um eine zu erwartende durchschnittliche Downloadzeit abzuleiten, wenn die Lastmerkmale des Servers vorgegeben sind.
  • Nachdem alle vorgegebenen Prüfungen durchgeführt worden sind, werden die Ergebnisse gesammelt und verarbeitet (Schritt 48). Es ist möglich, dass bestimmte Prüfungen nicht erfolgreich durchgeführt werden; in solchen Fällen müssen die Ergebnisse einen geeigneten Worst-Case-Wert ergeben (zum Beispiel Nulldurchsatz oder äußerst hohe Verzögerung).
  • Es muss beachtet werden, dass nicht alle möglichen Prüfungen jedes Mal durchgeführt werden, wenn das Konfigurationshilfsprogramm 34 läuft. Wenn eine große Anzahl von Benutzern das System nutzt, würde allein durch die Prüfungsprozedur eine wesentliche Entnahme an Server- und Netzwerkkapazität verursacht werden, was die vorher bereits diskutierte Abwärtsspirale von Netzwerkleistung verstärken würde.
  • Wie oben bereits angemerkt wurde, wird eine Prüfungshäufigkeitszahl in der Abgabe-Site-Datei für dynamische Steuerung der Anzahl der Benutzer, die eine Prüfung durchführen, gespeichert. Die durch das Konfigurationshilfsprogramm 34 durchgeführte Prüfung wird durchgeführt, um statistische Konfidenz bei der Entscheidung, welche Abgabe-Site am besten für die Datenabgabe an einen jeweiligen Benutzer geeignet ist, zu erzielen. Statistische Konfidenz wird erzielt, indem entweder eine kleine Probe von Benutzern ausreichend gut geprüft wird und diese Daten verwendet werden, um die Auswahl der Abgabe-Site zu beeinflussen, oder indem eine große Anzahl von Benutzern verfügbare Sites jeweils leicht" überprüft und indem diese Daten insgesamt verwendet werden.
  • Wenn dementsprechend das System anfangs genutzt wird, wird eine relativ kleine Anzahl von Benutzern in das System aufgenommen". Die von dem MSP 32 vorgehaltene Abgabe-Site-Datei widerspiegelt diese Bedingungen und fordert, dass jeder Benutzer das Netzwerk (durch das Konfigurationshilfsprogramm 34) relativ stark überprüft. Wenn sich die Anzahl der Benutzer erhöht, wird die Angabe-Site-Datei geändert, um die von einem jeden Benutzer durchgeführten Überprüfungen zu reduzieren. Wenn dann eine sehr große Anzahl von Benutzern das System nutzt, kann das Konfigurationshilfsprogramm 34 vorwiegend Überprüfung auf Erreichbarkeit der Abgabe-Site (über den „Ping-Versuch" wie oben beschrieben) überprüfen und sich dabei vorrangig auf Prüfdaten verlassen, die von anderen Benutzern bereitgestellt und in der von dem MSP 32 vorgehaltenen Datenbank gespeichert werden. Jedoch selbst wenn zahlreiche Benutzer das System überprüfen, kann eine kleine Anzahl von Benutzern (zum Beispiel einer aus 5.000) ausgewählt werden, um eine umfassende Versuchsreihe durchzuführen.
  • Vorzugsweise soll die Überprüfung nicht mehr als etwa 5% der gesamten Serverlast ausmachen. Eine Möglichkeit, dieses Ziel zu erreichen, besteht darin, eine große Anzahl von Benutzern leicht zu überprüfen, was eine Gruppe von Abgabe-Sites ergibt, die eine angemessene Leistung aufweisen. Diese Gruppe von Abgabe-Sites kann danach nach einem Rotationsverfahren genutzt werden, um Daten abzurufen. Informationen werden wie oben beschrieben zu tatsächlichen Multimediaclip-Downloadzeiten für eine jede der Abgabe-Sites gesammelt, und weiterführende Informationen zur Abgabe-Site-Leistung können danach transparent und ohne Notwendigkeit weiterführender direkter Überprüfungen an den MSP 32 übergeben werden.
  • Auf der Grundlage der gesammelten Prüfergebnisse und der in der Abgabe-Site-Datei von dem MSP 32 bereitgestellten Informationen bestimmt das Konfigurationshilfsprogramm 34 dementsprechend, welche Abgabe-Site oder welche Gruppe von Abgabe-Sites am besten für das Benutzer-Endgerät 12 geeignet ist (Schritt 50). Diese Bestimmung kann numerisch durchgeführt werden, indem die verschiedenen durchgeführten Überprüfungen gewichtet und das Ergebnis für jede Site verglichen wird.
  • In einem gegenwärtig bevorzugten Ausführungsbeispiel für Anwendung in einer Umgebung mit geringem Verkehr mit einer relativ kleinen Anzahl von Abgabe-Sites und Benutzern stützt sich das Konfigurationshilfsprogramm 34 vorwiegend auf die Ping-Prüfung und auf Durchsatzprüfungen für eine jede verfügbare Abgabe-Site. Eine anfängliche Ping-Prüfung wird durchgeführt, um zu bestimmen, ob eine Abgabe-Site erreichbar ist. Kurze und lange Downloads werden in den Durchsatzprüfungen durchgeführt, um den größten und den kleinsten Durchsatz von der Abgabe-Site zu ermitteln und um zu bestimmen, ob Durchsatzschwankung ausreichend gering ist, um die Über tragung von Videodaten zu ermöglichen. Dementsprechend wird diesen Überprüfungen eine hohe Wichtung zugeordnet. Andere Überprüfungen, wie zum Beispiel die Traceroute-Prüfung, können durchgeführt werden, und die Ergebnisse können an den MSP 32 übergeben werden, ohne dass sie eine Rolle bei der Auswahl der Abgabe-Sites spielen (diese anderen Prüfungen können zum Beispiel eine Wichtung von Null oder fast Null erhalten). Wenn die Größe des Systems zunimmt und wenn zusätzliche Abgabe-Sites und Benutzer aufgenommen werden, kann die Site-Auswahlformel geändert werden, indem der Inhalt der Abgabe-Site-Datei entsprechend geändert wird, um die sich ändernden Netzwerkbedingungen widerzuspiegeln.
  • In einem Ausführungsbeispiel der Erfindung wird eine geschützte grafische Schnittstelle bereitgestellt, so dass der Standort des Benutzers und die Standorte (jeweils geographisch und elektronisch) einer jeden überprüften Site an einem Monitor angezeigt werden können, der mit dem Benutzer-Endgerät 12 verbunden ist, wodurch eine visuelle Anzeige der relativen Entfernung zwischen den Sites ermöglicht wird. In einem Ausführungsbeispiel wird die Anzeige in der Form eines „Radarbildschirms" angezeigt, auf dem das Benutzer-Endgerät 12 und die Abgabe-Sites als „Zielanzeigen" angezeigt werden, die auf einer Karte der jeweiligen geographischen Region überlagert sind. Um den Benutzer zu ermutigen, die Anwendung zu nutzen, und um mehr netzwerkweite Daten bereitzustellen, kann es die Benutzer-Schnittstelle dem Benutzer ermöglichen, in eine „Ad-hoc-Prüf-Site einzutreten, um zusätzliche Leistungsprüfung durchzuführen. In diesem Fall wird das Konfigurationshilfsprogramm entweder die Standardwebseiten-Datei (zum Beispiel „index.html") oder eine konkrete von dem Benutzer angefragte Datei prüfen. Die Analyseergebnisse von der von dem Benutzer ausgewählten Site werden angepasst, so dass ein angemessener Vergleich mit den Ergebnissen von anderen Sites durchgeführt werden kann.
  • Es ist zu beachten, dass mehrere Gruppen von Abgabe-Sites von der Erfindung vorgehalten werden können, um mehrere Gruppen von Content Providern aufzunehmen. Ein jeder Content Provider kann nur an bestimmten Sites gespiegelt werden. Dementsprechend wird für einen jeden Content Provider, der eine eindeutige Menge von Abgabe-Sites aufweist, durch das Konfigurationshilfsprogramm 34 eine Haupt-Abgabe-Site ausgewählt. Um dies zu erreichen, können die vorstehenden Überprüfungen ein Mal durchgeführt werden, und danach kann in einem Ausführungsbeispiel eine numerische Wichtung auf eine jede geeignete Menge von Angabe-Sites angewendet werden. Eine Vielzahl von Smart-Mirror-Sites wird ausgewählt, eine für eine jede Content-Provider-Gruppe. Die Content-Provider-Gruppen werden in der Abgabe-Site-Datei angegeben; eine jede mögliche Abgabe-Site wird als zu einer Content-Provider-Gruppe oder zu mehreren Content-Provider-Gruppen zugehörig identifiziert. Wenn Content-Provider-Gruppen verwendet werden, können dies auch nur zwei Gruppen sein; die größtmögliche Anzahl ist im Wesentlichen unbegrenzt.
  • Es ist weiterhin zu beachten, dass ebenfalls eine priorisierte Reihenfolge von Abgabe-Sites erstellt und vorgehalten werden kann. Wenn dies geschieht, ermöglicht eine ausbleibende Reaktion oder Antwort der Haupt-Smart-Mirror-Site dem System, auf die nächste höher eingestufte Smart-Miror-Site zuzugreifen.
  • Nachdem eine Smart-Mirror-Site ausgewählt wurde, werden bestimmte Daten über E-Mail oder über ein anderes elektronisches Internetprotokoll an den MSP 32 übergeben (Schritt 52). Die durch die Abfrage des Benutzers empfangenen Informationen, die Identität der ausgewählten Smart-Mirror-Site und alle Rohprüfdaten und Ergebnisse, einschließlich der Uhrzeit und des Datums, zu denen eine jede Prüfung durchgeführt wurde, werden in einer Textdatei zusammengestellt (welche in einem Ausführungsbeispiel verschlüsselt wird) (Schritt 54). Das Konfigurationshilfsprogramm kann ebenfalls Informationen zur relativen Leistung für eine jede überprüfte Abgabe-Site speichern. Das Clientprogramm 36 verwendet die verschlüsselte Konfigurationsdatei, um Datendateien (Videoclips oder anderen Content) von der geeigneten Smart-Mirror-Site herunterzuladen.
  • Es ist zu beachten, dass der MSP 32 bei dem Betrieb des Systems bestimmte Funktionen durchführt. Der MSP 32 pflegt die Liste der Abgabe-Sites, wobei er Sites nach Erfordernis hinzufügt oder löscht. Der MSP 32 pflegt weiterhin die Datenbank der Netzwerkleistung, die Informationen enthält, die über E-Mail oder andere Mittel von den Benutzern empfangen werden, die das Konfigurationshilfsprogramm 34 ausführen. Da große Mengen von Daten von zahlreichen Benutzern empfangen werden, kann die Datenbank wertvolle Informationen zu der Leistung und zu anderen Merkmalen des Internet oder von Teilen desselben bereitstellen. Verschiede Datenverarbeitungsverfahren sind bekannt, um die genannten Informationen abzuleiten.
  • Die Standorte der zusammen mit der Erfindung verwendeten Abgabe-Sites werden durch eine Anzahl von Faktoren bestimmt, einschließlich von Marketingüberlegungen sowie Preis-Leistungs-Analysen. Die in der Datenbank des MSP gespeicherten Daten können jedoch das Hilfsprogramm des Platzierens einer Abgabe-Site an einem gegebenen Standort in dem Internet oder einem anderen Netzwerk bestätigen. In einem Ausführungsbeispiel sind Server an einem jeden großen Backbone (ein Teil des Internet, der von einer einzelnen Gesellschaft vorgehalten wird) und an anderen Internet-Leitungen, die eine große Anzahl von Benutzern bedienen, wie zum Beispiel die wichtigen Leitungen, die von den Regional Bell Operating Companies („RBOCs") betrieben werden, angeordnet werden. In bestimmten Netzwerken, die eine große Anzahl von Benutzern bedienen oder die starken Video-Abgabe-Verkehr aufweisen, können Server an wichtigen Points of Presence („PoPs") für das Netzwerk angeordnet werden, um sicherzustellen, dass ein jeder Benutzer hervorragenden Zugriff auf einen schnellen Server hat.
  • Nachdem das Konfigurationshilfsprogramm 34 ausgeführt wurde, kann der Benutzer das System nutzen, um Empfang von Datendateien, insbesondere von Videoclips, Audioclips, Softwareprogrammen und anderem Content, zu ermöglichen und zu unterstützen.
  • Mit sich änderndem Nutzungsmuster in einem Internetbereich des Benutzers ist der Benutzer gegebenenfalls nicht mehr mit der Leistung der zu seinem Benutzer-Endgerät 12 zugehörigen Smart-Mirror-Site zufrieden. Wenn dies eintritt, kann der Benutzer das Konfigurationshilfsprogramm 34 erneut laufen lassen. Zu diesem Zeitpunkt sind gegebenenfalls zusätzliche Abgabe-Sites in Betrieb genommen worden, oder eine bereits vorhandene Site kann nunmehr bessere Leistung bringen als früher. Wenn weiterhin das Player-Programm 36 bestimmt, dass die ausgewählte Smart-Mirror-Site nicht angemessen funktioniert (zum Beispiel hat sie bei drei von zehn Versuchen versagt), kann das Player-Programm 36 den Benutzer auffordern, das Konfigurationshilfsprogramm 34 erneut auszuführen. In einem anderen Ausführungsbeispiel der Erfindung wird die Überprüfungs- und Spiegel-Zuordnung automatisch mit jedem Abruf einer Datei an dem Smart-Mirror-Dienst oder zu Zwischenzeiten, wie zum Beispiel nach jedem zweiten, jedem dritten, jedem zehnten oder jedem hundertsten Abruf, ausgeführt.
  • Smart Mirroring
  • In einem Ausführungsbeispiel der Erfindung wird das Smart-Mirror-System verwendet, um eine Abgabe-Site zu lokalisieren, von der ein auf einer Webseite genannter Videoclip oder Audioclip (nachfolgend der „Clip") heruntergeladen werden soll. In diesem Ausführungsbeispiel kann das Clientprogramm als „Player-Programm" bezeichnet oder angesehen werden. Das Player-Programm ermöglicht zusätzlich zu der Ausführung der Funktionen des Clientprogramms 36 den Abruf und die Wiedergabe von Videodaten. Herkömmlicherweise wird ein Browserprogramm 38 auf dem Benutzer-Endgerät 12 ausgeführt, um Web-Content anzusehen. Übliche verwendete Browserprogramme sind unter anderem NCSA Mosaic, Netscape Navigator und der Microsoft Internet Explorer. Das Browserprogramm 38 ermöglicht es dem Benutzer, automatische Verknüpfungen zwischen verschiedenen Websites in dem Internet vorzunehmen.
  • Die Markierung EMBED wird in HTML-Dokumenten verwendet, um anzuzeigen, welche Webseiten von dem System verwalteten Content beinhalten. Wenn das Browserprogramm 38 eine Webseite empfängt, die eine Markierung EMBED enthält, wird ein Herunterladen der durch die Markierung angezeigten Datei begonnen, und die Dateiart wird analysiert. Wenn es sich bei der Datei um eine Datei der Art handelt, die von dem Player-Programm 36 bearbeitet wird, wie zum Beispiel MPEG, leitet das Browserprogramm 38 das Player-Programm 36 ein. Der Inhalt der Markierung wird sodann von dem Browserprogramm 38 an das Player-Programm 36 weitergeleitet.
  • Das Player-Programm 36 (1) stellt die von dem MSP 32 unterstützten Smart-Mirror-Dienste bereit. Der Betrieb des Player-Programms 36 wird in 3 im Detail gezeigt.
  • Das Player-Programm analysiert zunächst die Markierung EMBED, um zu bestimmen, ob ein „SM-Parameter" (Smart-Mirror-Parameter) vorliegt (Schritt 60); das Vorliegen eines solchen Parameters deutet an, dass der eingebettete Clip für Smart Mirroring freigegeben ist. Zu dem „SM-Parameter" zugehörige Daten spezifizieren den konkreten Content Provider, von dem der gewünschte Clip stammt, sowie die Gruppe von Spiegel-Servern, die der jeweilige Content Provider nutzt.
  • Wenn das Player-Programm 36 bestimmt, dass sich die Markierung EMBED auf einen Videoclip oder auf anderen Content bezieht, der von dem System bearbeitet wird (Schritt 62), wird die Übertragung des eingebetteten Clips von dem Content Provider 22 gestoppt. Das Player-Programm 36 fragt sodann Zugriffssteuerung oder Einstufungsinformationen aus der EMBED-Anweisung (Schritt 64) ab, falls diese vorliegt. Diese Einstufungsinformationen werden mit den in der auf dem Benutzer-Endgerät 12 gespeicherten Konfigurationsdatei gespeicherten Bezugsebenen verglichen (Schritt 66). Wenn die Einstufungsinformationen für den Clip nicht vorhanden sind, wird die Konfigurationsdatei aufgefordert, zu bestimmen, ob nicht eingestufte Clips gemäß nachstehender Definition wiedergegeben werden können (Schritt 68). Auf der Grundlage der vorstehenden Informationen wird das Player-Programm 36 das Ansehen des gewünschten Clips genehmigen oder ablehnen.
  • Wenn Wiedergabe genehmigt wird, versucht das Player-Programm 36 den angegebenen Clip auf dem lokalen Computer zu finden, der zu dem Benutzer-Endgerät 12 gehört (Schritt 70). Wenn dieser dort vorhanden ist, wird er nicht erneut heruntergeladen und kann direkt auf dem Computer wiedergegeben werden (von der Festplatte oder dem RAM) (Schritt 72). Jedoch werden zuerst die Uhrzeit und das Datum der Erstellung des Clips auf dem lokalen Computer mit der Uhrzeit und dem Datum des in dem Netzwerk verfügbaren Clips verglichen, um zu bestimmen, ob der gespeicherte Clip die aktuelle Version ist (Schritt 74). Wenn dies nicht der Fall ist, wird der gespeicherte Clip verworfen (Schritt 76) und der Herunterlade-Vorgang läuft wie folgt ab.
  • Wenn der Clip auf dem lokalen Computer nicht vorhanden ist, erstellt der Player eine neue URL (Schritt 78) in der folgenden Form: httg:// plus die IP-Adresse der in der Konfigurationsdatei gespeicherten ausgewählten Smart-Mirror-Site plus der Pfadname zu den Spiegel-Dateien (zum Beispiel „/pub/mirror/") plus der Name des Content Providers, der aus dem „SM-Parametern" in der EMBED-Anweisung entnommen wird, plus der Dateiname, der aus der EMBED-Anweisung entnommen wird. Die konstruierte URL wird genutzt, um den ausgewählten Clip von der geeigneten Smart-Mirror-Site abzurufen, die von dem Konfigurationshilfsprogramm 34 ausgewählt wird (Schritt 80). Wenn es mehr als eine Gruppe von Abgabe-Sites für verschiedene Content Provider gibt, wird der „SM-Parameter" weiterhin von dem Player-Programm 36 genutzt, um zu bestimmen, welche Smart-Mirror-Site in der Konfigurationsdatei in der konstruierten URL zu verwenden ist (Schritt 82).
  • Wenn der der konstruierten URL entsprechende Clip auf der Smart-Mirror-Site nicht gefunden wird oder wenn nicht auf ihn zugegriffen werden kann, wird das Herunterladen von der nächsthöher eingestuften Smart-Mirror-Site in der Konfigurationsdatei ausgelöst (Schritt 84). Wenn alle Abgabe-Sites versagen, wird das Herunterladen von der Site des Original-Content-Providers nach Vorgabe direkt durch die EMBED-Anweisung ausgelöst.
  • Wenn Wiedergabe nicht erlaubt wird, verhindert der Player, dass der Clip übertragen wird (Schritt 88) und zeigt eine Bitmap an (Schritt 90), die dem Benutzer mitteilt, dass Herunterladen nicht zulässig ist.
  • Wenn das Player-Programm 36 festlegt, dass sich die EMBED-Markierung auf einen Videoclip oder auf anderen Content bezieht, der von dem System nicht gehandhabt wird, wird der Player prüfen, ob die in der Konfigurationsdatei eingestellte Zugriffssteuerungsebene erlaubt, dass der Benutzer diese Clips oder andere Dateien, die als „nicht eingestuft" gelten, wiedergeben darf (Schritt 92). Wenn dies so ist, wird der Clip von seinem Original-Content-Provider 22 über herkömmliche Mittel übertragen (Schritt 94), und das Player-Programm 36 zeigt die heruntergeladene Datei an (Schritt 96). Wenn dies nicht der Fall ist, verhindert der Player, dass der Clip übertragen wird (Schritt 98) und zeigt eine Meldung an (Schritt 100), die dem Benutzer mitteilt, dass das Herunterladen nicht zulässig ist.
  • Beim Herunterladen wird die Datendatei, die den gewünschten Clip darstellt, auf dem lokalen Computer, üblicherweise auf der Festplatte, der zu dem Benutzer-Endgerät 12 gehört, in einem vorgegebenen Datenbereich gespeichert (Schritt 102). In einem Ausführungsbeispiel kann dieser Datenbereich durch das Player-Programm 36 auf der Basis zuletzt-am-wenigstens-verwendet verwaltet werden. Das heißt, wenn in diesem Datenbereich kein Platz für diesen neuen Clip verbleibt, kann oder können der oder die zuletzt am wenigsten genutzte(n) (oder angesehene(n)) Clip(s) verworfen werden, um Platz zu schaffen (Schritt 104).
  • In einem Ausführungsbeispiel der Erfindung ist das Clientprogramm 36 in der Lage, Nachrichten an den MSP 32 zu senden (Schritt 106), um anzudeuten, ob das Herunterladen erfolgreich war. Dies Nachricht enthält die Internetadresse des Benutzer-Endgerätes 12, die Identität der ausgewählten Servergruppe, die Internetadresse der Site, die verwendet wird, um das Herunterladen auszuführen, die Internetadresse aller Sites, die versagt haben, den Namen der heruntergeladenen Datei und die Uhrzeit des Herunterladens der Datei. Die Informationen können auch von dem MSP 32 genutzt werden, um Datei-Downloads zu verfolgen und um in Echtzeit zu bestimmen, ob es Probleme mit irgendwelchen Smart-Mirror-Sites gibt.
  • Alternativ dazu kann das Clientprogramm 36 eine kleine lokale Datenbank der Dateiübertragungsleistung vorhalten. Insbesondere können Informationen zu der Zeit gesammelt werden, die benötigt wird, bis ein Server beginnt, die angeforderte Datei zu senden, zu der Stabilität der Datenübertragungsrate und zu der Fehlerrate der Übertragung. In einem gewissen Intervall (zum Beispiel wöchentlich oder ein Mal aller 100 Downloads) werden eine Nachricht, die die akkumulierten Informationen der Dateiübertragungsleistung enthält, sowie die oben diskutierten Benutzer- und Serverinformationen (automatisch oder auf Anforderung) an den MSP 32 gesendet (Schritt 106), um die Datenbank des MSP zu aktualisieren. Diese zusätzlichen Informationen erhöhen das „Wissen" des MSP über die Netzwerkleistung, ohne dabei zusätzlichen Prüf-Overhead zu erzeugen.
  • Diese Daten sind besonders wertvoll bei der Ermittlung der Leistung der Abgabe-Sites zum Zwecke der Bewertung der Qualität des von dem Abgabe-Site-Provider eingekauften Dienstes und um die Qualität des Dienstes gegenüber den Content Providern zu dokumentieren, um die Kosten des Systems zu stützen. Es wird jedoch anerkannt, dass ein Großteil der gleichen Informationen durch neue Benutzer gewonnen werden können, die das Konfigurationshilfsprogramm 34 ausführen.
  • Weiterhin ermöglicht die Bereitstellung von Downloadinformationen an die MSP-Einrichtungen die Nutzung der Erfindung als einen teilnehmerbasierten Dienst im Premiumbereich. Da erfolgreiche Downloads in einer Datenbank verfolgt werden, kann ein jeder Benutzer ein zugehöriges „Konto" zur Verfolgung von Gebühren haben. Dem Benutzer kann die Benutzung des Smart-Mirror-Systems je Datei, je Megabyte, je Monat oder nach anderen bekannten Abrechnungsmethoden in Rechnung gestellt werden. In einem Ausführungsbeispiel enthält die zu einer Datei zugehörige EMBED-Markierung Rechungslegungsinformationen beziehungsweise einen Preis" für die Datei. Das Verfolgen der Download-Leistung durch die Erfindung ermöglicht die Vergabe von Nachlässen und Gutschriften, die ausgegeben werden, wenn Downloads als übermäßig schwierig oder langsam befunden werden.
  • Um sicherzustellen, dass in den Smart-Mirror-Sites gespeicherte Dateien nur von entsprechend autorisierten Benutzern der Erfindung benutzt werden (zum Beispiel solche, die bezahlte Konten aufweisen), können die an den Abgabe-Sites gespeicherten Dateien wahlweise in verschlüsselter Form vorliegen, und der oben beschriebene Download-Schritt kann einen Verschlüsselungsschritt umfassen. Diese Verschlüsselung und die Entschlüsselung können durch hinlänglich bekannte Mittel durchgeführt werden.
  • Wie weiter oben bereits diskutiert wurde, können die von der Erfindung verwalteten Clips dazu zugehörige Content-Bewertungs-Informationen aufweisen. Dies wird dadurch erzielt, dass ein „PG-Parameter" in der EMBED-Anweisung dem Clip entsprechend bereitgestellt wird. In einem Ausführungsbeispiel werden vier Merkmale bewertet: Nacktaufnahmen, jugendfreie Aufnahmen, Verunglimpfung von Religionen und gewaltverherrlichendes Material. Dementsprechend kann der PG-Parameter durch ein vierstelliges Argument spezifiziert werden. Jedes Merkmal wird auf einer Skala von eins bis drei bewertet. Eins bedeutet kein Filtern (das heißt der gesamte Content ist zulässig), zwei bedeutet ein gewisses Filtern (zum Beispiel entsprechend den Kategorien des Kinder- und Jugendschutzes, wie sie für Fernsehprogramme angewendet werden) und drei bedeutet umfangreiches Filtern (zum Beispiel für Kinder). Die in der EMBED-Anweisung für eine Datei enthaltenen Bewertungsebenen werden mit den in der in dem Benutzer-Endgerät 12 in dem vorhergehenden Autorisierungsverfahren gespeicherten Bewertungsfilterebenen verglichen und nur autorisierte Dateien werden übertragen.
  • Formatauswahl
  • Die Erfindung ist in de Lage, ein bevorzugtes Dateiformat aus einer Vielzahl von verfügbaren Formaten auszuwählen. Dementsprechend umfasst das Speichermodul 27 der ersten Abgabe-Site 26 (1) Speicherplatz für eine Vielzahl von Videoclips in verschiedenen Formaten. Vier Clips 116 bis 119 werden gezeigt, wenngleich gemäß dem erfindungsgemäßen System und Verfahren eine beliebige Anzahl genutzt werden kann.
  • Analog dazu hat der Browser 38 (1) eine Vielzahl von CODECs installiert. Drei CODECs 110 bis 114 werden gezeigt, wenngleich gemäß dem erfindungsgemäßen System und Verfahren eine beliebige Anzahl genutzt werden kann.
  • Ein Ausführungsbeispiel der Formatauswahl-Komponente der Erfindung wird in Verbindung mit dem Fließbild in 4 beschrieben werden. Das Formatauswahlverfahren versucht, einen der Videoclips 116 bis 119 als in einem bevorzugten Format, das sowohl in dem Speichermodul 27 (1) gespeichert ist als auch von einem der CODECs 110 bis 114 (1) unterstützt wird, vorliegend zu identifizieren.
  • Eine Webseite, die einen Videoclip zur Nutzung mit der Erfindung einbettet, wie in 4 beschrieben wird, umfasst auch ein eingebettetes Softwareprogramm. Dieses Softwareprogramm kann in der Sprache JavaScript geschrieben sein, die nach dem Stand der Technik bekannt ist und die mit einer Reihe von gegenwärtig verfügbaren Webbrowsern kompatibel ist, beispielsweise mit dem Netscape Navigator und dem Microsoft Internet Explorer.
  • Zuerst wird die Webseite, die den Videoclip enthält, durch das Benutzer-Endgerät geladen (Schritt 120). Das eingebettete Softwareprogramm-„Script „ wird sodann durch den Browser gelesen und interpretiert (Schritt 122).
  • Das eingebettete Script spezifiziert eine Ablauffolge von bevorzugten CODECs und entsprechenden Arten von Videoclip-Formaten. Clips in einem jeden der spezifizierten Formate werden an einer Abgabe-Site oder an mehreren Abgabe-Sites gespeichert (1). Die CODECs werden in dem Script in einer priorisierten Reihenfolge spezifiziert. Wenn der zuerst angegebene CODEC auf dem Benutzer-Endgerät gespeichert ist, wird dieser verwendet. Wenn nur ein nachrangig aufgeführter CODEC installiert ist, wird dieser anstelle dessen verwendet.
  • Zuerst fordert das eingebettete Script den Browser auf, zu prüfen, ob ein bevorzugter CODEC installiert ist (Schritt 124). Wenn dies nicht der Fall ist (Schritt 126), prüft das eingebettete Script, ob weitere CODECS unterstützt werden und zur Nutzung verfügbar sind (Schritt 136), und wenn dies so ist, kehrt es zurück und sendet erneut eine Auforderung an den Browser (Schritt 124).
  • Wenn einer der bevorzugten CODECs installiert ist (Schritt 126), wird eine URL aus dem Speicherort des Videoclips erstellt (Schritt 128). Zum Beispiel kann eine solche erstellte URL http://www.deliverysite.com/clips/watchme sein. Es ist zu beachten, dass die erstellte URL keine Formattyp-Erweiterung aufweist. Die erstellte URL wir sodann modifiziert (Schritt 130), indem eine Formattyp-Erweiterung an den Speicherort des Videoclips angehängt wird (zum Beispiel „mpg" für in MPEG formatierte Clips oder „avi" für in Microsoft Video für Windows formatierte Clips). Die verwendete Formattyp-Erweiterung ist abhängig von dem ausgewählten CODEC. Die daraus resultierende URL (zum Beispiel httpa/www.deliverysite.com/clips/watchme.mpg) spezifiziert eine Videoclipdatei eindeutig in einem Format, das von dem auf dem Benutzer-Endgerät gespeicherten bevorzugten CODEC erkannt wird. Diese URL wird sodann an die durch die URL spezifizierte Abgabe-Site übertragen, und der Clip wird heruntergeladen (Schritt 132) und wiedergegeben (Schritt 134). Wenn die Videoclipdatei empfangen wird, ruft der Browser automatisch den richtigen CODEC zur Anzeige auf.
  • Wenn alle bevorzugten CODECs geprüft worden sind (Schritt 136) und wenn keiner davon auf dem Benutzer-Endgerät installiert ist, fordert das eingebettete Script den Benutzer auf, einen bevorzugten CODEC zu installieren (Schritt 138). Wenn sich der Benutzer entscheidet, dies zu tun (Schritt 140), kann dem Benutzer eine weitere Auswahl an CODECs zum Herunterladen angeboten werden (Schritt 142), oder aber diese Auswahl kann von dem eingebetteten Script automatisch durchgeführt werden. Der CODEC wird danach heruntergeladen (Schritt 144) und installiert (Schritt 146). Das eingebettete Script wird erneut ausgeführt, um zu prüfen, ob der neue CODEC ordnungsgemäß installiert wurde (Schritte 124 bis 134). Wenn der Benutzer keinen neuen CODEC installieren möchte, wird eine Fehlernachricht angezeigt (Schritt 148) und es wird kein Video heruntergeladen oder wiedergegeben.
  • Unter bestimmten Umständen kann die Installation eines CODEC (Schritt 146) gegebenenfalls nicht automatisch durch das eingebettete Script durchgeführt werden. Zum Beispiel erkennen aktuelle Versionen des Netscape Navigator solange keinen neuen Plug-in, bis die Anwendung beendet und neu gestartet wird. In einem solchen Fall kann das eingebettete Script vor dem Herunterladen des CODEC den Browser auffordern, zu ermitteln, um welche Art es sich handelt (zum Beispiel Microsoft Internet Explorer oder Netscape Navigator), und in Abhängigkeit von dem Ergebnis der Abfrage alternative Schritte einzuleiten. In dem letztgenannten Fall zum Beispiel kann das eingebettete Script dem Benutzer Anweisungen erteilen, wie der heruntergeladene CODEC manuell zu installieren ist. Andererseits ermöglicht der Microsoft Internet Explorer ActiveX-Steuerungen, Programme, die innerhalb des Browsers arbeiten, um ohne Eingriff des Benutzers heruntergeladen und installiert zu werden. Das eingebettete Script kann einen browserabhängigen Code zur Implementierung dieses Merkmals enthalten. Analog dazu können verschiedene CODEC-Programme zur Anwendung mit den verschiedenen Browserumgebungen ausgewählt werden.
  • Das vorstehende Ausführungsbeispiel des Formatauswahlmoduls funktioniert, indem es eine Formattyp-Erweiterung an eine ansonsten statische URL anhängt, die auf einen Videoclip verweist. Alternativ dazu kann das Formatauswahlmodul so implementiert werden, dass alternative Formate an verschiedenen Abgabe-Sites gespeichert werden. In dieser alternativen Durchführung wird die URL in einem Schritt erstellt (Schritt 128) und modifiziert (Schritt 130). Ein jeder bevorzugter CODEC bewirkt, dass eine vollständig eindeutige URL verwendet wird und nicht nur eine eindeutige Dateiart-Erweiterung. Zum Beispiel kann httg://www.deliverysite.com/clips/watchme.mpg eine MPEG-Version eines jeweiligen Videoclips darstellen, wohingegen http://www.othersite.com/videos/watchme.avi eine AVI-Version desselben Clips darstellen kann.
  • Es ist zu beachten, dass das Ausführungsbeispiel des unter Bezugnahme auf 4 beschriebenen Formatauswahlmoduls nicht wie oben bereits beschrieben mit dem Smart-Mirroring-System zusammenwirkt. Jedoch können eindeutige URLs für verschiedene Clipformate verwendet werden, um die Nachfrage nach einem bestimmten Clip über mehrere Abgabe-Sites zu verteilen, wodurch eine primitive Form von Mirroring implementiert wird.
  • Ein zweites, gegenwärtig bevorzugtes Ausführungsbeispiel der Erfindung ist fähig zu Dateiformatauswahl in Verbindung mit Spiegel-Site-Auswahl. Dieses Ausführungsbeispiel, das ein eingebettetes Softwareprogramm („Script") zusammen mit einem vorinstallierten Plug-in-Programm verwendet, wird in Verbindung mit dem Fließbild aus 5 beschrieben werden.
  • Zuerst wird die Webseite, die den Videoclip enthält, von dem Benutzer-Endgerät geladen (Schritt 160). Das eingebettete Softwareprogramm „Script" wird danach gelesen und interpretiert (Schritt 161).
  • Das eingebettete Script prüft, ob das Formatauswahl-Plug-in installiert ist (Schritt 162). Wenn dies nicht der Fall ist, gibt das Script dem Benutzer die Möglichkeit, das Plug-in herunterzuladen und zu installieren (Schritt 164). Wenn der Benutzer das Plug-in nicht installieren möchte (Schritt 166), fährt das Script wie in 4 beschrieben fort (Label „A", Schritt 168, Übertragungssteuerung zu Schritt 122).
  • Im anderen Fall und wenn der Benutzer das Plug-in installieren möchte (Schritt 166), wird das Plug-in heruntergeladen (Schritt 170) und installiert (Schritt 172). Wie weiter oben bereits diskutiert wurde, kann das Plug-in gegebenenfalls nicht automatisch von dem Script installiert werden. Wenn dies der Fall ist, kann der Benutzer Anweisungen zur manuellen Installation desselben erhalten.
  • Wenn das Plug-in vorhanden ist oder wenn der Benutzer entsprechende Schritte zu dessen Installation eingeleitet hat, wird das Plug-in sodann von dem eingebetteten Script aufgerufen (Schritt 174). Dies kann durch eine „EMBED"-Anweisung erfolgen, die eine eingebettete Datei angibt, der von dem Browser ein Typ (oder eine Erweiterung) mit dem Formatauswahl-Plug-in zugeordnet wird.
  • Die EMBED-Anweisung gibt weiterhin Parameter an, die von dem Plug-in für die Formatauswahl zu verwenden sind. Das Plug-in empfängt diese Parameter (Schritt 176), die eine priorisierte Liste bevorzugter CODECs und Dateityp-Erweiterungen umfasst.
  • Wie das Ausführungsbeispiel mit dem eingebetteten Script fordert das Plug-in den Browser danach auf, zu bestimmen, ob ein bevorzugter CODEC installiert. ist (Schritt 178). Wenn dies nicht der Fall ist (Schritt 180), prüft das Plug-in, ob weitere CODECs unterstützt werden und für Nutzung verfügbar sind (Schritt 182), und wenn dies so ist, kehrt es zurück und übergibt eine neue Aufforderung an den Browser (Schritt 178).
  • Wenn ein bevorzugter CODEC installiert ist (Schritt 180), fordert das Plug-in den Browser auf, zu ermitteln, ob die Funktionen eines Aufforderungs-Umleiters verfügbar sind (Schritt 184). Der Umleiter implementiert die Merkmale des Smart Mirroring wie oben diskutiert und kann als separates Plug-in von dem Formatauswahlmodul oder aber als Teil des gleichen Plug-ins implementiert werden. In beiden Fällen können die Funktionen des Umleiters zur Verfügung stehen oder nicht, in Abhängigkeit davon, ob der Benutzer einen Smart-Mirroring-Dienst abonniert hat, die Software ordnungsgemäß konfiguriert hat, und von anderen Aspekten. Wenn der Umleiter nicht verfügbar ist (Schritt 186), wird der Benutzer aufgefordert, die entsprechende Software herunterzuladen und zu installieren (Schritt 188).
  • Unabhängig davon, ob der Umleiter verfügbar ist oder nicht, wird danach eine URL von dem Plug-in aus den in der EMBED-Anweisung übergebenen Parametern erstellt (Schritt 190). Wie weiter oben in Verbindung mit 4 diskutiert wurde, umfasst die erstellte URL einen statischen Videospeicherort. Die URL wird sodann modifiziert, indem eine Dateiart auf der Grundlage des bevorzugten CODEC, der auf dem Benutzer-Endgerät vorhanden ist, angehängt wird (Schritt 192).
  • Der Clip wird danach entweder direkt oder über den Umleiter (das heißt das Player-Programm 36) heruntergeladen (Schritt 194), wodurch das Smart-Mirroring-Merkmal der Erfindung wie in Zusammenhang mit 3 diskutiert implementiert wird. Insbesondere wird, wenn das Player-Programm 36 vorhanden ist, die Steuerung zu dem Schritt 60 übergehen, der danach das Herunterladen des Clips verwaltet. Wiedergabe (an den Schritten 72, 96 beziehungsweise 108) wird durch den entsprechenden CODEC erzielt, der automatisch von dem Browser oder dem Player-Programm 36 aufgerufen wird.
  • Wenn der Clip direkt heruntergeladen wird (und die Merkmale des Umleiters nicht verfügbar sind), wird der Clip durch herkömmliche Mittel wiedergegeben. Das Formatauswahl-Plug-in hat ihm jedoch gegebenenfalls eine Konfigurationsdatei zugeordnet, die ein Listing von Abgabe-Sites enthält, das Videoclips enthält, die durch die Erfindung verwaltet werden. Anstelle die auf der Webseite für das Herunterladen eines Clips gespeicherte URL zu benutzen, kann das Plug-in eine Zufallsauswahl aus der Liste von Abgabe-Sites vornehmen und den Namen des Clips sowie den bevorzugten Formattyp an diese ausgewählte Abgabe-Site anhängen. Das Herunterladen kann danach von der willkürlich ausgewählten Abgabe-Site erfolgen (Schritt 194). Wenngleich dies nicht das Smart-Mirroring-Verfahren bereitstellt, bewirkt es dennoch ein bestimmtes Maß an Lastverteilung. Wenngleich die an einem jeweiligen Benutzer-Endgerät vorgenommene Auswahl gegebenenfalls nicht die beste für dieses Endgerät sein mag, wird die Nachfrage nach dem Videoclip auf eine Vielzahl von Abgabe-Sites verteilt.
  • Wenn die Videoclip-Datei empfangen wird, ruft der Browser automatisch den richtigen CODEC zur Anzeige auf (Schritt 196).
  • Wenn alle bevorzugten CODECs durch das Plug-in geprüft worden sind (Schritt 182) und wenn keiner auf dem Benutzer-Endgerät installiert ist, fordert das eingebettete Script den Benutzer auf, einen bevorzugten CODEC zu installieren (Schritt 198). Wenn sich der Benutzer entscheidet, dies zu tun (Schritt 200), kann der Benutzer eine weitere Auswahl von CODECs zum Herunterladen erhalten (Schritt 202), oder aber diese Auswahl kann von dem Plug-in automatisch durchgeführt werden. Der CODEC wird danach heruntergeladen (Schritt 204) und installiert (Schritt 206). Das Plug-in prüft danach die ordnungsgemäße Installation des neuen CODEC und nutzt diesen, wenn er richtig installiert wurde (beginnend an dem Schritt 178). Wenn der Benutzer keinen neuen CODEC installieren möchte, wird eine Fehlernachricht angezeigt (Schritt 208) und es wird kein Video heruntergeladen oder wiedergegeben.
  • Wie weiter oben bereits ausgeführt wurde, kann die Installation eines CODEC (Schritt 206) gegebenenfalls nicht automatisch durch das eingebettete Script durchgeführt werden. Dementsprechend kann eine Reihe von browserabhängigen Schritten ausgeführt werden, um den CODEC entweder automatisch zu installieren oder um dem Benutzer Anweisungen zum manuellen Installieren zu erteilen, wie weiter oben in Verbindung mit 4 beschrieben wurde.
  • Das letztgenannte Ausführungsbeispiel des Formatauswahlmoduls wird als zwei Hauptfunktionen aufweisend beschrieben. erstens Auswahl des bevorzugten CODEC und Dateiformats und zweitens Auswahl einer Abgabe-Site mittels des Smart-Mirroring-Systems und -Verfahrens. Es ist zu beachten, dass die genaue Reihenfolge dieser beiden Operationen nicht von größter Wichtigkeit ist. Wenngleich das beschriebene Ausführungsbeispiel die Formatauswahl zuerst ausführt und als zweites die Abgabe-Site auswählt, ist die umgekehrte Reihenfolge ebenso funktionsfähig und kann gewisse Vorteile und Nachteile im Vergleich zu dem offengelegten Ausführungsbeispiel aufweisen.
  • Angesichts des oben Gesagten wird verständlich werden, dass Ausführungsbeispiele der Erfindung in zahlreichen verschiedenen Anwendungen angewendet werden können, um die Gewinnung und Auswertung von Leistungsdaten für Netzwerke zwischen einem gegebenen Benutzer und einem Content Provider oder einer Abgabe-Site zu ermöglichen. Obwohl das beschriebene Ausführungsbeispiel das System als im Kontext des Internet arbeitend beschreibt, kann sich ein solches System anerkanntermaßen auch in anderen Netzwerkumgebungen, wie zum Beispiel in unternehmensinternen sogenannten Intranets, als nützlich erweisen.
  • Wenngleich darüber hinaus die veranschaulichenden Ausführungsbeispiele vorwiegend zur Anwendung in einem Video-Abgabesystem beschrieben werden, kann ein erfindungsgemäßes System anerkanntermaßen auch zur Verteilung verschiedener Arten von Computerdaten (wie zum Beispiel Anwendungsprogramme, Datenbankdateien und andere Geschäftsinformationen, Virtual-Reality-Dateien, Multimediadateien, wie zum Beispiel Macromedia-Shockwave-Dateien, und große Textdateien, wie zum Beispiel Bücher) verwendet werden. Solche anderen Arten von Daten können durch die Erfindung wie oben ausführlich beschrieben in verschiedenen Content-Provider-Gruppen verwaltet werden. Eine unterschiedliche Art von Programm (nicht das Player-Programm 36 oder die CODECs) würde dann typischerweise an dem Benutzer-Endgerät 12 aufgerufen werden, um andere Arten von Daten anzusehen oder zu nutzen.
  • Es ist weiterhin zu beachten, dass eine bestimmte Funktionalität, die als an dem Benutzer-Endgerät 12 ausgeführt beschrieben wird (insbesondere bestimmte Funktionen, die von dem Konfigurationshilfsprogramm 34 oder von dem Client-/Player-Programm 36 durchgeführt werden) als selbstständiges Programm, als ein „Plug-in" oder als eine „Hilfsanwendung", implementiert werden kann, das innerhalb eines Browserprogramms läuft, oder als Java-Applet, das von einer Abgabe-Site heruntergeladen wird, um in einer Browserumgebung ausgeführt zu werden. Für Endgeräte, die in der Lage sind, das Betriebssystem Microsoft Windows auszuführen, kann auch eine als Microsoft ActiveX bekannte Umgebung hilfreich sein und zur Implementierung von Softwareprogrammen genutzt werden, die analog zu den oben beschriebenen „Plug-ins" arbeiten.

Claims (14)

  1. Verfahren zum Abgeben einer Datendatei in einem bevorzugten Format, das umfasst: Speichern im Wesentlichen identischer Datendateien in einer Vielzahl verschiedener Formate auf jeder einer Vielzahl von Abgabe-Sites (26, 28, 30); in Reaktion auf Empfang einer Anforderung von einem Client (12, 16, 20) an einer Site (22, 24) eines Content Providers, Abgeben einer Seite, die einen Verweis auf die Datendatei (120) enthält; Bestimmen einer bevorzugten Abgabe-Site aus der Gruppe von Abgabe-Sites, wobei der Schritt des Bestimmens einer bevorzugten Abgabe-Site umfasst: Durchführen von Netzwerk-Tests (46); und Bestimmen der bevorzugten Abgabe-Site auf Basis von Ergebnissen der Tests (50); und in Reaktion auf Empfang einer Anforderung der Datendatei in einem bevorzugten Format an der bevorzugten Abgabe-Site, Abgeben der Datendatei in dem bevorzugten Format (132), dadurch gekennzeichnet, dass die Seite, die einen Verweis auf die Datendatei enthält, des Weiteren ein erstes Softwareprogramm (120) umfasst, wobei das erste Softwareprogramm an dem Client ausgeführt werden kann, um das bevorzugte Format für die Datendatei zu identifizieren.
  2. Verfahren nach Anspruch 1, wobei sich die Gruppe von Abgabe-Sites an Internet-PoP (Points of Presence) befindet.
  3. Verfahren nach Anspruch 1, wobei die bevorzugte Abgabe-Site elektronisch nahe an dem Client liegt.
  4. Verfahren nach Anspruch 1, das des Weiteren den Schritt (204) des Herunterladens eines CODEC zu dem Client zur Verwendung bei der Wiedergabe der Datendatei in dem bevorzugten Format einschließt.
  5. System zum Anfordern und Empfangen einer Datendatei in einem einer Vielzahl möglicher Formate von einer Abgabe-Site, die sich in einem verteilten Computernetzwerk (10) befindet, wobei das System umfasst: wenigstens einen Content Provider (22, 24), der mit dem Netzwerk verbunden ist, wobei der Content Provider wenigstens eine Datendatei speichert; wenigstens zwei Abgabe-Sites (26, 28, 30), die mit dem Netzwerk verbunden sind, wobei jede der Abgabe-Sites die gleiche Datendatei wie der Content Provider in einer Vielzahl unterschiedlicher Formate speichert; ein Benutzer-Endgerät (12, 16, 20), das mit dem Netzwerk verbunden ist; eine Netzwerk-Testvorrichtung zum Testen des Netzwerks, eine Site-Auswählvorrichtung, die auf Basis von Ergebnissen von der Netzwerk-Testvorrichtung eine bevorzugte Abgabe-Site aus allen Abgabe-Sites auswählt, die mit dem Netzwerk verbunden sind; eine Format-Auswählvorrichtung, die ein bevorzugtes Format für die Datendatei auswählt; und eine Herunterladevorrichtung zum Herunterladen der Datendatei in dem bevorzugten Format von der bevorzugten Abgabe-Site zu dem Benutzer-Endgerät, dadurch gekennzeichnet, dass die Format-Auswählvorrichtung so konfiguriert ist, dass sie ein erstes Softwareprogramm von einer Webseite liest und interpretiert, das von dem Content Provider (22, 24) zu dem Benutzer-Endgerät (12, 16, 20) geladen wird, um das bevorzugte Format für die Datendatei zu identifizieren.
  6. System nach Anspruch 5, das des Weiteren eine Datenbank (32) umfasst, die in Verbindung mit dem Netzwerk steht.
  7. System nach Anspruch 5 oder 6, wobei die Netzwerk-Testvorrichtung ein erstes Speichermedium umfasst, das in Verbindung mit dem Benutzer-Endgerät (12, 16, 20) steht, und das erste Speichermedium ein zweites Softwareprogramm verkörpert, das durch das Benutzer-Endgerät ausgeführt werden kann, um das Netzwerk zu testen und eine bevorzugte Abgabe-Site aus allen Abgabe-Sites (26, 28, 30) auszuwählen, die mit dem Netzwerk verbunden sind.
  8. System nach Anspruch 7, wobei das zweite Softwareprogramm eine Liste von Abgabe-Sites verwendet, die durch die Datenbank (32) erzeugt wird.
  9. System nach Anspruch 8, wobei das zweite Softwareprogramm Ergebnisse von einer Netzwerk-Analyseprozedur verwendet, um die bevorzugte Abgabe-Site aus der Liste von Abgabe-Sites auszuwählen.
  10. System nach Anspruch 8, wobei das zweite Softwareprogramm Ergebnisse von einer Netzwerk-Analyseprozedur verwendet, um eine priorisierte Liste bevorzugter Abgabe-Sites zu erzeugen.
  11. System nach Anspruch 9, wobei die Netzwerk-Analyseprozedur wenigstens teilweise an dem Benutzer-Endgerät (12, 16, 20) durchgeführt wird.
  12. System nach Anspruch 11, wobei die Netzwerk-Analyseprozedur eine Vielzahl von Netzwerk-Tests umfasst.
  13. System nach einem der Ansprüche 5–12, wobei die Herunterladevorrichtung ein zweites Speichermedium umfasst, das mit dem Benutzer-Endgerät verbunden ist, und das zweite Speichermedium ein drittes Softwareprogramm verkörpert, das durch das Benutzer-Endgerät ausgeführt werden kann, um die Datendatei von der bevorzugten Abgabe-Site zu dem Benutzer-Endgerät (12, 16, 20) herunterzuladen.
  14. System nach einem der Ansprüche 5–13, wobei die Datendatei einen Videoclip umfasst.
DE69834807T 1997-03-14 1998-03-13 System und verfahren zum auswählen und laden verschiedener typen von videodaten in einem computernetzwerk Expired - Lifetime DE69834807T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US3908697P 1997-03-14 1997-03-14
US39086P 1997-03-14
PCT/US1998/004976 WO1998040831A1 (en) 1997-03-14 1998-03-13 System and method for selection and retrieval of diverse types opf video data on a computer network

Publications (2)

Publication Number Publication Date
DE69834807D1 DE69834807D1 (de) 2006-07-20
DE69834807T2 true DE69834807T2 (de) 2007-01-04

Family

ID=21903595

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69834807T Expired - Lifetime DE69834807T2 (de) 1997-03-14 1998-03-13 System und verfahren zum auswählen und laden verschiedener typen von videodaten in einem computernetzwerk

Country Status (8)

Country Link
US (1) US6421726B1 (de)
EP (1) EP0966715B1 (de)
JP (1) JP2001527668A (de)
AT (1) ATE329318T1 (de)
AU (1) AU720291B2 (de)
CA (1) CA2284063C (de)
DE (1) DE69834807T2 (de)
WO (1) WO1998040831A1 (de)

Families Citing this family (236)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8352400B2 (en) 1991-12-23 2013-01-08 Hoffberg Steven M Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore
AU714336B2 (en) * 1996-07-25 1999-12-23 Clearway Acquisition, Inc. Web serving system with primary and secondary servers
US6052718A (en) 1997-01-07 2000-04-18 Sightpath, Inc Replica routing
AU7593798A (en) * 1997-05-19 1998-12-11 Intervu, Inc. A system and method for optimizing the delivery of audio and video data over a computer network
US6112239A (en) * 1997-06-18 2000-08-29 Intervu, Inc System and method for server-side optimization of data delivery on a distributed computer network
US8060613B2 (en) 1998-02-10 2011-11-15 Level 3 Communications, Llc Resource invalidation in a content delivery network
US6185598B1 (en) 1998-02-10 2001-02-06 Digital Island, Inc. Optimized network resource location
US6782409B1 (en) * 1998-05-29 2004-08-24 Sony Corporation Experience/sympathy information providing system
FI107109B (fi) * 1998-10-21 2001-05-31 Nokia Networks Oy Digitaalinen tietoliikennejärjestelmä
WO2000025248A2 (en) * 1998-10-26 2000-05-04 Intervu, Inc. Audience management for interactive network events
US6763370B1 (en) * 1998-11-16 2004-07-13 Softricity, Inc. Method and apparatus for content protection in a secure content delivery system
US7017188B1 (en) * 1998-11-16 2006-03-21 Softricity, Inc. Method and apparatus for secure content delivery over broadband access networks
US6694354B1 (en) * 1998-11-30 2004-02-17 Telefonaktiebolaget Lm Ericsson (Publ) Host computer access to peripheral device drivers
US7966078B2 (en) 1999-02-01 2011-06-21 Steven Hoffberg Network media appliance system and method
US6360093B1 (en) * 1999-02-05 2002-03-19 Qualcomm, Incorporated Wireless push-to-talk internet broadcast
US7076546B1 (en) * 1999-02-10 2006-07-11 International Business Machines Corporation Browser for use in accessing hypertext documents in a multi-user computer environment
US6901604B1 (en) * 1999-02-19 2005-05-31 Chaincast, Inc. Method and system for ensuring continuous data flow between re-transmitters within a chaincast communication system
US7200632B1 (en) * 1999-04-12 2007-04-03 Softricity, Inc. Method and system for serving software applications to client computers
US7370071B2 (en) * 2000-03-17 2008-05-06 Microsoft Corporation Method for serving third party software applications from servers to client computers
US6938096B1 (en) * 1999-04-12 2005-08-30 Softricity, Inc. Method and system for remote networking using port proxying by detecting if the designated port on a client computer is blocked, then encapsulating the communications in a different format and redirecting to an open port
US7730169B1 (en) 1999-04-12 2010-06-01 Softricity, Inc. Business method and system for serving third party software applications
US6345294B1 (en) 1999-04-19 2002-02-05 Cisco Technology, Inc. Methods and apparatus for remote configuration of an appliance on a network
US6505254B1 (en) 1999-04-19 2003-01-07 Cisco Technology, Inc. Methods and apparatus for routing requests in a network
US7685311B2 (en) 1999-05-03 2010-03-23 Digital Envoy, Inc. Geo-intelligent traffic reporter
US6757740B1 (en) * 1999-05-03 2004-06-29 Digital Envoy, Inc. Systems and methods for determining collecting and using geographic locations of internet users
US8099758B2 (en) 1999-05-12 2012-01-17 Microsoft Corporation Policy based composite file system and method
US6275470B1 (en) 1999-06-18 2001-08-14 Digital Island, Inc. On-demand overlay routing for computer-based communication networks
US7051274B1 (en) * 1999-06-24 2006-05-23 Microsoft Corporation Scalable computing system for managing annotations
US6601090B1 (en) 1999-06-25 2003-07-29 Nortel Networks Limited System and method for servicing internet object accessess from a coupled intranet
US6738559B1 (en) * 1999-06-29 2004-05-18 Lg Electronics Inc. Feature-dependent operating method between two connected equipments and an apparatus for controlling the operating method
US6795863B1 (en) * 1999-08-10 2004-09-21 Intline.Com, Inc. System, device and method for combining streaming video with e-mail
US8543901B1 (en) 1999-11-01 2013-09-24 Level 3 Communications, Llc Verification of content stored in a network
WO2001038994A1 (en) * 1999-11-24 2001-05-31 John Blair Method and system for continuous interactive communication in an electronic network
US6651084B1 (en) * 1999-11-29 2003-11-18 International Business Machines Corporation System and method for adding plug-ins to a web browser
US6442708B1 (en) * 1999-12-14 2002-08-27 Honeywell International Inc. Fault localization and health indication for a controller area network
GB2364139B (en) * 1999-12-22 2004-05-26 Ibm A security mechanism providing access control for locally-held data
WO2001052523A1 (en) * 2000-01-12 2001-07-19 Advanced Communication Design, Inc. Compression and remote storage apparatus for data, music and video
US7085995B2 (en) * 2000-01-26 2006-08-01 Sony Corporation Information processing apparatus and processing method and program storage medium
DE60139527D1 (de) * 2000-01-26 2009-09-24 Sony Corp Informationsverarbeitungsgerät, verfahren und programmspeichermedium
JP4035806B2 (ja) * 2000-01-31 2008-01-23 株式会社日立製作所 映像配信システム
JP2001223799A (ja) * 2000-02-10 2001-08-17 Nec Corp 移動体通信システムおよびプログラム伝送方法
US6981180B1 (en) * 2000-03-16 2005-12-27 Akamai Technologies, Inc. Method and apparatus for testing request-response service using live connection traffic
US20020198996A1 (en) * 2000-03-16 2002-12-26 Padmanabhan Sreenivasan Flexible failover policies in high availability computing systems
US6684250B2 (en) * 2000-04-03 2004-01-27 Quova, Inc. Method and apparatus for estimating a geographic location of a networked entity
US7043447B2 (en) * 2000-04-19 2006-05-09 Sony Corporation Method for facilitating a transaction for purchasable content over an electronic network
US7065584B1 (en) * 2000-04-28 2006-06-20 Lucent Technologies Inc. Method and apparatus for network mapping using end-to-end delay measurements
US7299291B1 (en) 2000-05-18 2007-11-20 Akamai Technologies, Inc. Client-side method for identifying an optimum server
US7246366B1 (en) * 2000-06-13 2007-07-17 Scientific-Atlanta, Inc. System and method for automatically determining service groups in a subscriber network
JP2002007238A (ja) * 2000-06-21 2002-01-11 Nec Corp 移動通信システム及びそのゲートウェイ選択方法
JP2002002140A (ja) * 2000-06-22 2002-01-08 Riso Kagaku Corp 微多孔性孔版原紙およびその利用
US7665082B2 (en) * 2000-06-30 2010-02-16 Microsoft Corporation Methods and systems for adaptation, diagnosis, optimization, and prescription technology for network-based applications
US7111163B1 (en) 2000-07-10 2006-09-19 Alterwan, Inc. Wide area network using internet with quality of service
US7346676B1 (en) * 2000-07-19 2008-03-18 Akamai Technologies, Inc. Load balancing service
US7716367B1 (en) 2000-07-20 2010-05-11 Akamai Technologies, Inc. Network performance monitoring in a content delivery service
EP1178403A3 (de) * 2000-08-01 2005-07-27 Matsushita Electric Industrial Co., Ltd. Herunterladungssystem
JP2002108840A (ja) * 2000-09-28 2002-04-12 Toshiba Corp 分散型注文受付システム、受付サーバ、コンテンツサーバ、分散型注文受付方法及びコンピュータプログラム製品
US7548962B2 (en) * 2000-09-29 2009-06-16 Thomson Licensing Internet multimedia advertisement insertion system selection architecture
US7313593B1 (en) 2000-10-24 2007-12-25 International Business Machines Corporation Method and apparatus for providing full duplex and multipoint IP audio streaming
WO2002039305A1 (en) * 2000-11-09 2002-05-16 Sri International Information management via delegated control
US7158534B2 (en) * 2000-11-30 2007-01-02 Imajet Communications, Inc. Unified distributed architecture for a multi-point video conference and interactive broadcast systems
US6795941B2 (en) 2000-12-21 2004-09-21 Honeywell International Inc. Method for diagnosing a network
US7088740B1 (en) * 2000-12-21 2006-08-08 Bae Systems Information And Electronic Systems Integration Inc Digital FM radio system
US9674575B2 (en) 2001-01-19 2017-06-06 SITO Mobile R&D IP, LLC System and method for routing media
US8458754B2 (en) 2001-01-22 2013-06-04 Sony Computer Entertainment Inc. Method and system for providing instant start multimedia content
JP4254071B2 (ja) * 2001-03-22 2009-04-15 コニカミノルタビジネステクノロジーズ株式会社 プリンタ,サーバ,監視装置,プリントシステムおよび監視プログラム
US7739327B2 (en) * 2001-04-05 2010-06-15 Playstream Inc. Distributed link processing system for delivering application and multi-media content on the internet
US20030018721A1 (en) * 2001-06-29 2003-01-23 Virad Gupta Unified messaging with separate media component storage
US20030030659A1 (en) * 2001-08-10 2003-02-13 Wu Hsiang Min Method of automatic display of audio-video films in web pages
US7599434B2 (en) * 2001-09-26 2009-10-06 Reynolds Jodie L System and method for compressing portions of a media signal using different codecs
US7457358B2 (en) * 2001-09-26 2008-11-25 Interact Devices, Inc. Polymorphic codec system and method
WO2003027876A1 (en) 2001-09-26 2003-04-03 Jodie Lynn Reynolds System and method for communicating media signals
US7302102B2 (en) * 2001-09-26 2007-11-27 Reynolds Jodie L System and method for dynamically switching quality settings of a codec to maintain a target data rate
US7457359B2 (en) * 2001-09-26 2008-11-25 Mabey Danny L Systems, devices and methods for securely distributing highly-compressed multimedia content
US7860964B2 (en) 2001-09-28 2010-12-28 Level 3 Communications, Llc Policy-based content delivery network selection
JP4160506B2 (ja) 2001-09-28 2008-10-01 レヴェル 3 シーディーエヌ インターナショナル インコーポレーテッド. 構成可能な適応型広域トラフィック制御および管理
US7373644B2 (en) 2001-10-02 2008-05-13 Level 3 Communications, Llc Automated server replication
US20030079027A1 (en) 2001-10-18 2003-04-24 Michael Slocombe Content request routing and load balancing for content distribution networks
US7480703B2 (en) * 2001-11-09 2009-01-20 Sony Corporation System, method, and computer program product for remotely determining the configuration of a multi-media content user based on response of the user
US20030126611A1 (en) * 2001-12-28 2003-07-03 International Business Machines Corporation Methods and apparatus for controlling interactive television information and commerce services
US20030140093A1 (en) * 2002-01-23 2003-07-24 Factor Cory L. Method and apparatus for providing content over a distributed network
US9167036B2 (en) 2002-02-14 2015-10-20 Level 3 Communications, Llc Managed object replication and delivery
US7260645B2 (en) * 2002-04-26 2007-08-21 Proficient Networks, Inc. Methods, apparatuses and systems facilitating determination of network path metrics
US7804995B2 (en) * 2002-07-02 2010-09-28 Reald Inc. Stereoscopic format converter
TWI221563B (en) * 2002-07-05 2004-10-01 Samsung Electronics Co Ltd Method for displaying mark-up document according to parental level, method and apparatus for reproducing mark-up document in interactive mode, and data storage medium
US7885896B2 (en) * 2002-07-09 2011-02-08 Avaya Inc. Method for authorizing a substitute software license server
US8041642B2 (en) 2002-07-10 2011-10-18 Avaya Inc. Predictive software license balancing
JP2004064156A (ja) * 2002-07-24 2004-02-26 Monolith Co Ltd コンテンツサーバ、およびそのサーバにおけるコンテンツの提供方法
US7966520B2 (en) 2002-08-30 2011-06-21 Avaya Inc. Software licensing for spare processors
US7681245B2 (en) 2002-08-30 2010-03-16 Avaya Inc. Remote feature activator feature extraction
US7643550B2 (en) * 2002-10-09 2010-01-05 Hewlett-Packard Development Company, L.P. Method for presenting streaming media for an event
JP4214271B2 (ja) * 2002-10-15 2009-01-28 アークレイ株式会社 クレアチニン測定用試験片
TW200408227A (en) * 2002-10-15 2004-05-16 Matsushita Electric Ind Co Ltd Digital item adaptation system via URL
US20040078339A1 (en) * 2002-10-22 2004-04-22 Goringe Christopher M. Priority based licensing
US7046137B2 (en) * 2002-10-24 2006-05-16 Speechgear, Inc. Delivery of embedded information in a selected format
US7542471B2 (en) * 2002-10-30 2009-06-02 Citrix Systems, Inc. Method of determining path maximum transmission unit
US8270423B2 (en) 2003-07-29 2012-09-18 Citrix Systems, Inc. Systems and methods of using packet boundaries for reduction in timeout prevention
US7630305B2 (en) * 2003-07-29 2009-12-08 Orbital Data Corporation TCP selective acknowledgements for communicating delivered and missed data packets
US8233392B2 (en) 2003-07-29 2012-07-31 Citrix Systems, Inc. Transaction boundary detection for reduction in timeout penalties
US7616638B2 (en) * 2003-07-29 2009-11-10 Orbital Data Corporation Wavefront detection and disambiguation of acknowledgments
US20050021446A1 (en) * 2002-11-08 2005-01-27 Whinston Andrew B. Systems and methods for cache capacity trading across a network
US7890997B2 (en) * 2002-12-26 2011-02-15 Avaya Inc. Remote feature activation authentication file system
JP2004246632A (ja) * 2003-02-14 2004-09-02 Hitachi Ltd データ分配サーバ、プログラム及びネットワークシステム
US20040167977A1 (en) * 2003-02-25 2004-08-26 Douglas Christopher Paul Method and system for monitoring streaming media flow
US7975043B2 (en) 2003-02-25 2011-07-05 Hewlett-Packard Development Company, L.P. Method and apparatus for monitoring a network
US20040167981A1 (en) * 2003-02-25 2004-08-26 Douglas Christopher Paul Method and system for monitoring relationships between content devices in a content delivery network
US20040260710A1 (en) * 2003-02-28 2004-12-23 Marston Justin P. Messaging system
US7325202B2 (en) * 2003-03-31 2008-01-29 Sun Microsystems, Inc. Method and system for selectively retrieving updated information from one or more websites
US7761427B2 (en) * 2003-04-11 2010-07-20 Cricket Technologies, Llc Method, system, and computer program product for processing and converting electronically-stored data for electronic discovery and support of litigation using a processor-based device located at a user-site
US7143170B2 (en) * 2003-04-30 2006-11-28 Akamai Technologies, Inc. Automatic migration of data via a distributed computer network
US20040249965A1 (en) * 2003-05-05 2004-12-09 Huggins Guy Dwayne Node caching system for streaming media applications
US20040225743A1 (en) * 2003-05-05 2004-11-11 Huggins Guy Dwayne Streaming media creation tool
US7698453B2 (en) * 2003-07-29 2010-04-13 Oribital Data Corporation Early generation of acknowledgements for flow control
US8437284B2 (en) 2003-07-29 2013-05-07 Citrix Systems, Inc. Systems and methods for additional retransmissions of dropped packets
US7656799B2 (en) 2003-07-29 2010-02-02 Citrix Systems, Inc. Flow control system architecture
US8432800B2 (en) 2003-07-29 2013-04-30 Citrix Systems, Inc. Systems and methods for stochastic-based quality of service
US8238241B2 (en) 2003-07-29 2012-08-07 Citrix Systems, Inc. Automatic detection and window virtualization for flow control
US7356566B2 (en) * 2003-10-09 2008-04-08 International Business Machines Corporation Selective mirrored site accesses from a communication
US20050144242A1 (en) * 2003-10-31 2005-06-30 Justin Marston Caching in an electronic messaging system
US20050198168A1 (en) * 2003-12-04 2005-09-08 Justin Marston Messaging protocol discovery
US20050138049A1 (en) * 2003-12-22 2005-06-23 Greg Linden Method for personalized news
US8527604B2 (en) * 2004-02-12 2013-09-03 Unity Works Media Managed rich media system and method
WO2005086681A2 (en) * 2004-03-04 2005-09-22 Quova, Inc. Geo-location and geo-compliance utilizing a client agent
US9161068B2 (en) 2004-03-24 2015-10-13 Onstream Media Corporation Remotely accessed virtual recording room
WO2005109794A1 (en) * 2004-05-12 2005-11-17 Bluespace Group Ltd Enforcing compliance policies in a messaging system
US20060031352A1 (en) * 2004-05-12 2006-02-09 Justin Marston Tamper-proof electronic messaging
US7711647B2 (en) * 2004-06-10 2010-05-04 Akamai Technologies, Inc. Digital rights management in a distributed network
US7587398B1 (en) 2004-06-30 2009-09-08 Google Inc. System and method of accessing a document efficiently through multi-tier web caching
US8676922B1 (en) 2004-06-30 2014-03-18 Google Inc. Automatic proxy setting modification
US7437364B1 (en) 2004-06-30 2008-10-14 Google Inc. System and method of accessing a document efficiently through multi-tier web caching
US8224964B1 (en) 2004-06-30 2012-07-17 Google Inc. System and method of accessing a document efficiently through multi-tier web caching
US7558822B2 (en) * 2004-06-30 2009-07-07 Google Inc. Accelerating user interfaces by predicting user actions
US7565423B1 (en) 2004-06-30 2009-07-21 Google Inc. System and method of accessing a document efficiently through multi-tier web caching
JP2006031233A (ja) * 2004-07-14 2006-02-02 Sony Corp コンテンツ提供装置及び方法、コンテンツ提供システム
KR20060006532A (ko) * 2004-07-16 2006-01-19 삼성전자주식회사 요청된 미디어파일의 재생 가능여부를 알리는 미디어파일저장장치 및 전송방법
US20070074274A1 (en) * 2004-07-29 2007-03-29 Matt Nowicki Network communications protocol
US7808925B2 (en) * 2004-09-10 2010-10-05 Digital Envoy, Inc. Methods and systems for determining reverse DNS entries
US7497374B2 (en) * 2004-09-17 2009-03-03 Digital Envoy, Inc. Fraud risk advisor
US20060064374A1 (en) * 2004-09-17 2006-03-23 David Helsper Fraud risk advisor
US7543740B2 (en) * 2004-09-17 2009-06-09 Digital Envoy, Inc. Fraud analyst smart cookie
US7707405B1 (en) 2004-09-21 2010-04-27 Avaya Inc. Secure installation activation
US20060069700A1 (en) * 2004-09-22 2006-03-30 Justin Marston Generating relational structure for non-relational messages
US7747851B1 (en) 2004-09-30 2010-06-29 Avaya Inc. Certificate distribution via license files
US7748032B2 (en) 2004-09-30 2010-06-29 Citrix Systems, Inc. Method and apparatus for associating tickets in a ticket hierarchy
US8229858B1 (en) 2004-09-30 2012-07-24 Avaya Inc. Generation of enterprise-wide licenses in a customer environment
US7711835B2 (en) 2004-09-30 2010-05-04 Citrix Systems, Inc. Method and apparatus for reducing disclosure of proprietary data in a networked environment
US8613048B2 (en) 2004-09-30 2013-12-17 Citrix Systems, Inc. Method and apparatus for providing authorized remote access to application sessions
US7454434B1 (en) * 2004-10-04 2008-11-18 American Express Travel Related Services Company, Inc. System and method for stepped loading of web page content
US20060168066A1 (en) * 2004-11-10 2006-07-27 David Helsper Email anti-phishing inspector
US8032594B2 (en) 2004-11-10 2011-10-04 Digital Envoy, Inc. Email anti-phishing inspector
KR100735274B1 (ko) * 2004-11-18 2007-07-03 삼성전자주식회사 트랜스코더를 구비한 분산형 멀티미디어 전송 네트워크의트랜스코딩 방법 및 장치
US20060159432A1 (en) 2005-01-14 2006-07-20 Citrix Systems, Inc. System and methods for automatic time-warped playback in rendering a recorded computer session
US7831728B2 (en) 2005-01-14 2010-11-09 Citrix Systems, Inc. Methods and systems for real-time seeking during real-time playback of a presentation layer protocol data stream
US8230096B2 (en) 2005-01-14 2012-07-24 Citrix Systems, Inc. Methods and systems for generating playback instructions for playback of a recorded computer session
US8340130B2 (en) 2005-01-14 2012-12-25 Citrix Systems, Inc. Methods and systems for generating playback instructions for rendering of a recorded computer session
US8200828B2 (en) 2005-01-14 2012-06-12 Citrix Systems, Inc. Systems and methods for single stack shadowing
US8296441B2 (en) 2005-01-14 2012-10-23 Citrix Systems, Inc. Methods and systems for joining a real-time session of presentation layer protocol data
US8145777B2 (en) 2005-01-14 2012-03-27 Citrix Systems, Inc. Method and system for real-time seeking during playback of remote presentation protocols
US8935316B2 (en) 2005-01-14 2015-01-13 Citrix Systems, Inc. Methods and systems for in-session playback on a local machine of remotely-stored and real time presentation layer protocol data
US8024568B2 (en) 2005-01-28 2011-09-20 Citrix Systems, Inc. Method and system for verification of an endpoint security scan
US7436936B2 (en) * 2005-02-22 2008-10-14 Level 3 Communications, Llc VoIP call through tester
US7519074B2 (en) * 2005-02-22 2009-04-14 Level 3 Communications, Llc Voice call coordinator
US7818350B2 (en) * 2005-02-28 2010-10-19 Yahoo! Inc. System and method for creating a collaborative playlist
US20060282386A1 (en) * 2005-03-14 2006-12-14 Szeto Christopher T Method and system for premium access
AU2010201379B2 (en) * 2010-04-07 2012-02-23 Limelight Networks, Inc. System and method for delivery of content objects
US20060282534A1 (en) * 2005-06-09 2006-12-14 International Business Machines Corporation Application error dampening of dynamic request distribution
US7636315B2 (en) * 2005-06-21 2009-12-22 Hewlett-Packard Development Company, L.P. Broadcast traceroute
US8160160B2 (en) * 2005-09-09 2012-04-17 Broadcast International, Inc. Bit-rate reduction for multimedia data streams
US8191008B2 (en) 2005-10-03 2012-05-29 Citrix Systems, Inc. Simulating multi-monitor functionality in a single monitor environment
US7707314B2 (en) * 2005-11-21 2010-04-27 Limelight Networks, Inc. Domain name resolution resource allocation
US7870125B1 (en) 2005-12-27 2011-01-11 Charter Communications Holding Company Integrated media content server system and method for the customization of metadata that is associated therewith
WO2007082308A2 (en) * 2006-01-13 2007-07-19 Bluespace Software Corp. Determining relevance of electronic content
US7716238B2 (en) 2006-02-15 2010-05-11 Sony Computer Entertainment America Inc. Systems and methods for server management
US7979460B2 (en) * 2006-02-15 2011-07-12 Sony Computer Entainment America Inc. Systems and methods for server management
US20070245392A1 (en) * 2006-03-31 2007-10-18 Masstech Group Inc. Disaster recovery
US20070233868A1 (en) * 2006-03-31 2007-10-04 Tyrrell John C System and method for intelligent provisioning of storage across a plurality of storage systems
KR100763206B1 (ko) * 2006-04-03 2007-10-04 삼성전자주식회사 이용 가능한 코덱 정보를 제공하는 장치 및 그 방법
JP4589263B2 (ja) * 2006-04-10 2010-12-01 日本電信電話株式会社 音声モニタリング録音システム
US7747749B1 (en) 2006-05-05 2010-06-29 Google Inc. Systems and methods of efficiently preloading documents to client devices
CN101094222B (zh) * 2006-06-20 2014-03-19 达通科技股份有限公司 一种改善远距实时串流视讯传输及储存的反射器及方法
US8533846B2 (en) 2006-11-08 2013-09-10 Citrix Systems, Inc. Method and system for dynamically associating access rights with a resource
US8812651B1 (en) 2007-02-15 2014-08-19 Google Inc. Systems and methods for client cache awareness
US8065275B2 (en) * 2007-02-15 2011-11-22 Google Inc. Systems and methods for cache optimization
US7796510B2 (en) 2007-03-12 2010-09-14 Citrix Systems, Inc. Systems and methods for providing virtual fair queueing of network traffic
US7760642B2 (en) 2007-03-12 2010-07-20 Citrix Systems, Inc. Systems and methods for providing quality of service precedence in TCP congestion control
US8966369B2 (en) * 2007-05-24 2015-02-24 Unity Works! Llc High quality semi-automatic production of customized rich media video clips
US8893171B2 (en) * 2007-05-24 2014-11-18 Unityworks! Llc Method and apparatus for presenting and aggregating information related to the sale of multiple goods and services
US8489702B2 (en) * 2007-06-22 2013-07-16 Apple Inc. Determining playability of media files with minimal downloading
WO2009032711A1 (en) 2007-08-29 2009-03-12 Nirvanix, Inc. Policy-based file management for a storage delivery network
US9483405B2 (en) 2007-09-20 2016-11-01 Sony Interactive Entertainment Inc. Simplified run-time program translation for emulating complex processor pipelines
CA2845710C (en) 2007-12-07 2015-04-14 Vidiense Technology Pty Ltd Method and system to display a video in an email
US8392053B2 (en) * 2007-12-13 2013-03-05 Service Solutions U.S., Llc Graphing device and method
US8849838B2 (en) 2008-01-15 2014-09-30 Google Inc. Bloom filter for storing file access history
WO2009094673A2 (en) 2008-01-27 2009-07-30 Citrix Systems, Inc. Methods and systems for remoting three dimensional graphics
EP2086236A1 (de) * 2008-01-31 2009-08-05 Hewlett-Packard Development Company, L.P. Verfahren und Vorrichtung zum Zugriff auf Anwendungen
US20090240759A1 (en) * 2008-03-19 2009-09-24 Takashi Miyamoto Methods and Apparatus for Web Application Testing Using Proxy
US9762692B2 (en) 2008-04-04 2017-09-12 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
US10924573B2 (en) 2008-04-04 2021-02-16 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
CA2720353C (en) 2008-04-04 2016-01-19 Level 3 Communications, Llc Handling long-tail content in a content delivery network (cdn)
US20090276696A1 (en) * 2008-04-30 2009-11-05 Microsoft Corporation High-fidelity rendering of documents in viewer clients
GB2463329B (en) * 2008-09-10 2013-02-20 Echostar Advanced Technologies L L C Set-top box emulation system
JP2010117863A (ja) * 2008-11-12 2010-05-27 Toshiba Corp コンテンツ再生装置およびコンテンツ再生方法
EP2436168A2 (de) * 2009-05-29 2012-04-04 France Telecom Technik zum verteilen von inhalt an einen benutzer
US9015335B1 (en) 2009-06-17 2015-04-21 Amazon Technologies, Inc. Server side stream switching
EP2446590B1 (de) * 2009-06-22 2015-11-25 Citrix Systems, Inc. Systeme und verfahren zur begrenzung von plattformgeschwindigkeit
US9137301B1 (en) 2009-06-30 2015-09-15 Amazon Technologies, Inc. Client based opportunistic routing
US9137300B1 (en) 2009-06-30 2015-09-15 Amazon Technologies, Inc. Opportunistic pipe switching
US9118680B1 (en) 2009-06-30 2015-08-25 Amazon Technologies, Inc. Opportunistic routing
US8606848B2 (en) 2009-09-10 2013-12-10 Opentv, Inc. Method and system for sharing digital media content
US8244874B1 (en) 2011-09-26 2012-08-14 Limelight Networks, Inc. Edge-based resource spin-up for cloud computing
US8745239B2 (en) 2010-04-07 2014-06-03 Limelight Networks, Inc. Edge-based resource spin-up for cloud computing
US8433759B2 (en) 2010-05-24 2013-04-30 Sony Computer Entertainment America Llc Direction-conscious information sharing
US8799411B2 (en) 2010-05-28 2014-08-05 Arvato Digital Services Canada, Inc. Method and apparatus for providing enhanced streaming content delivery with multi-archive support using secure download manager and content-indifferent decoding
US8775554B2 (en) * 2010-12-30 2014-07-08 Microsoft Corporation Cloud-based web page applications for extending functionality
US8655348B2 (en) * 2011-02-18 2014-02-18 Pctel, Inc. System and method for acquiring network data
AU2011201674B1 (en) 2011-04-14 2012-07-19 Limelight Networks, Inc. Advanced embed code
US8867337B2 (en) 2011-04-26 2014-10-21 International Business Machines Corporation Structure-aware caching
US8584211B1 (en) 2011-05-18 2013-11-12 Bluespace Software Corporation Server-based architecture for securely providing multi-domain applications
US8615159B2 (en) 2011-09-20 2013-12-24 Citrix Systems, Inc. Methods and systems for cataloging text in a recorded session
US8905280B2 (en) * 2011-09-22 2014-12-09 Marquette Mounts Open side wall mount rack
US8849976B2 (en) 2011-09-26 2014-09-30 Limelight Networks, Inc. Dynamic route requests for multiple clouds
US8600915B2 (en) 2011-12-19 2013-12-03 Go Daddy Operating Company, LLC Systems for monitoring computer resources
US8719196B2 (en) 2011-12-19 2014-05-06 Go Daddy Operating Company, LLC Methods for monitoring computer resources using a first and second matrix, and a feature relationship tree
US10340034B2 (en) 2011-12-30 2019-07-02 Elwha Llc Evidence-based healthcare information management protocols
US10528913B2 (en) 2011-12-30 2020-01-07 Elwha Llc Evidence-based healthcare information management protocols
US10679309B2 (en) 2011-12-30 2020-06-09 Elwha Llc Evidence-based healthcare information management protocols
US10559380B2 (en) 2011-12-30 2020-02-11 Elwha Llc Evidence-based healthcare information management protocols
US10475142B2 (en) 2011-12-30 2019-11-12 Elwha Llc Evidence-based healthcare information management protocols
US10402927B2 (en) 2011-12-30 2019-09-03 Elwha Llc Evidence-based healthcare information management protocols
US10552581B2 (en) 2011-12-30 2020-02-04 Elwha Llc Evidence-based healthcare information management protocols
US20130346624A1 (en) * 2012-06-20 2013-12-26 Steven Chervets Dynamic media throttling based on data quotas
US11354486B2 (en) 2013-05-13 2022-06-07 International Business Machines Corporation Presenting a link label for multiple hyperlinks
US20150006691A1 (en) * 2013-06-27 2015-01-01 Cisco Technology, Inc. Managing rogue cloud provider operations
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication and devices thereof
US10404698B1 (en) 2016-01-15 2019-09-03 F5 Networks, Inc. Methods for adaptive organization of web application access points in webtops and devices thereof
US10747427B2 (en) 2017-02-01 2020-08-18 Google Llc Keyboard automatic language identification and reconfiguration
US10764391B2 (en) 2017-09-14 2020-09-01 Akamai Technologies, Inc. Origin and cache server cooperation for compute-intensive content delivery

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69030340T2 (de) 1989-02-24 1997-11-20 Digital Equipment Corp Makler für die Auswahl von Rechnernetzwerkservern
WO1991011874A1 (en) * 1990-02-02 1991-08-08 Sente Corporation Single number information exchange routing process
US5504837A (en) * 1993-05-10 1996-04-02 Bell Communications Research, Inc. Method for resolving conflicts among distributed entities through the generation of counter proposals by transversing a goal hierarchy with acceptable, unacceptable, and indeterminate nodes
US5490203A (en) * 1993-07-26 1996-02-06 Bell Communications Research Inc. Method and system utilizing a location caching strategy to locate nomadic users in a communication services system
DE69431557T2 (de) * 1993-09-20 2003-02-20 Codex Corp Dynamische ratenanpassung zur ueberlastregelung in kommunikationsnetzwerken
SE517548C2 (sv) * 1994-03-22 2002-06-18 Ericsson Telefon Ab L M Intelligent mobil telekommunikationsnät-anordning
GB2288041A (en) * 1994-03-23 1995-10-04 Ibm Object linking and embedding over a computer network.
US5574903A (en) * 1994-05-13 1996-11-12 Apple Computer, Inc. Method and apparatus for handling request regarding information stored in a file system
US5557790A (en) 1994-06-21 1996-09-17 International Business Machines Corp. Facility for the generic storage and management of multimedia objects
US5742905A (en) * 1994-09-19 1998-04-21 Bell Communications Research, Inc. Personal communications internetworking
WO1996017313A1 (en) * 1994-11-18 1996-06-06 Oracle Corporation Method and apparatus for indexing multimedia information streams
US5793966A (en) * 1995-12-01 1998-08-11 Vermeer Technologies, Inc. Computer system and computer-implemented process for creation and maintenance of online services
US5809282A (en) * 1995-06-07 1998-09-15 Grc International, Inc. Automated network simulation and optimization system
US5701451A (en) * 1995-06-07 1997-12-23 International Business Machines Corporation Method for fulfilling requests of a web browser
US6181867B1 (en) * 1995-06-07 2001-01-30 Intervu, Inc. Video storage and retrieval system
US5774668A (en) * 1995-06-07 1998-06-30 Microsoft Corporation System for on-line service in which gateway computer uses service map which includes loading condition of servers broadcasted by application servers for load balancing
US6003030A (en) * 1995-06-07 1999-12-14 Intervu, Inc. System and method for optimized storage and retrieval of data on a distributed computer network
US5737495A (en) * 1995-09-29 1998-04-07 Intel Corporation Method and apparatus for managing multimedia data files in a computer network by streaming data files into separate streams based on file attributes
US5832221A (en) * 1995-12-29 1998-11-03 At&T Corp Universal message storage system
US5918012A (en) * 1996-03-29 1999-06-29 British Telecommunications Public Limited Company Hyperlinking time-based data files
GB9606739D0 (en) * 1996-03-29 1996-06-05 British Telecomm Telecommunications apparatus and method
AU714336B2 (en) * 1996-07-25 1999-12-23 Clearway Acquisition, Inc. Web serving system with primary and secondary servers
US5812529A (en) * 1996-11-12 1998-09-22 Lanquest Group Method and apparatus for network assessment
US6173322B1 (en) * 1997-06-05 2001-01-09 Silicon Graphics, Inc. Network request distribution based on static rules and dynamic performance data
US6115752A (en) * 1998-05-21 2000-09-05 Sun Microsystems, Inc. System and method for server selection for mirrored sites
US6178460B1 (en) * 1998-06-30 2001-01-23 International Business Machines Corporation Method of efficiently retrieving data on a computer network by monitoring performance of mirrored network locations

Also Published As

Publication number Publication date
AU6702198A (en) 1998-09-29
CA2284063A1 (en) 1998-09-17
AU720291B2 (en) 2000-05-25
DE69834807D1 (de) 2006-07-20
US6421726B1 (en) 2002-07-16
EP0966715A1 (de) 1999-12-29
WO1998040831A1 (en) 1998-09-17
CA2284063C (en) 2002-10-22
JP2001527668A (ja) 2001-12-25
EP0966715B1 (de) 2006-06-07
ATE329318T1 (de) 2006-06-15

Similar Documents

Publication Publication Date Title
DE69834807T2 (de) System und verfahren zum auswählen und laden verschiedener typen von videodaten in einem computernetzwerk
DE69835674T2 (de) System und verfahren zur serverseitigen optimierung von datenübermittlung in einem verteilten rechnernetz
DE69909839T3 (de) Optimierte Lokalisierung von Netzwerkbetriebsmittel
DE69838583T2 (de) Übertragung von netzwerkinhalt hoher bandbreite über ein übertragungskanal niedriger bandbreite während den betriebsstunden mit niedriger auslastung
DE60119045T2 (de) Informationsverteilungssystem und Informationsverteilungsverfahren
DE19882235B4 (de) Verwendung von Web-Technologie für Teilnehmerverwaltungsaktivitäten
DE69831904T2 (de) Dynamische Erstellung von Internetseiten
DE69730056T2 (de) Routen von duplikaten
DE60216918T2 (de) Verfahren und computersystem zur auswahl eines randservercomputers
JP4554156B2 (ja) 分散型ネットワークキャッシュの協同管理
DE69837508T2 (de) Verfahren zum Inhaltswiederauffinden über ein Netzwerk
US6442577B1 (en) Method and apparatus for dynamically forming customized web pages for web sites
DE602004003135T2 (de) Einheitliches management von netzressourcen für gleichzeitige teilnahme mehrerer nutzer an einer sitzung
DE60015423T2 (de) Verfahren und Vorrichtung zur Objektwiedergabe in einem Netzwerk
DE69635047T2 (de) Vernetzte server mit kundenspezifischen diensten zum herunterladen von videos
US7222088B2 (en) Service system
DE60317917T2 (de) Verfahren und vorrichtung zum weiterleiten von sitzungsinformationen von einem portal-server
DE69913176T2 (de) Verfahren und system zum eingeben von äusserem inhalt in interaktiven netzsitzungen
US6625643B1 (en) System and method for resource management on a data network
DE69730382T2 (de) System und Verfahren zur automatischen Netzrekonfiguration
JP2001502830A (ja) 分散型コンピュータネットワーク上における、最適化されたデータ記憶および検索のためのシステムおよび方法
DE10252815A1 (de) Abgabe von Geboten für die Position in einem Suchsystem mit Bezahlung für Plazierung
DE69636869T2 (de) Server mit automatischer Menüladefunktion
DE10392481T5 (de) System und Verfahren zur Überprüfung eines empfangenen digitalen Inhalts
DE60109947T2 (de) Verfahren zur Server-Auswahl in einem Inhaltsauslieferungsnetzwerk

Legal Events

Date Code Title Description
8364 No opposition during term of opposition