-
Die
vorliegende Erfindung betrifft allgemein einen Informationsabruf über das
World Wide Web oder dergleichen, und genauer das Abrufen eines Inhalts
zur Lieferung an einen Client, der über eine Kommunikationsverbindung
mit dem Netzwerk verbunden werden kann, wobei der Client einen Cachespeicher
umfasst.
-
Das
World Wide Web des Internets ist die erfolgreichste dezentralisierte
Anwendung in der Geschichte der EDV. In der Web-Umgebung bewirken Clients
Transaktionen zu Web-Servern unter Verwendung des Hypertext Transfer
Protocol (HTTP), das ein bekanntes Anwendungsprotokoll ist, um Anwendern
Zugriff auf Dateien (z. B. Text, Graphiken, Bilder, Ton, Video,
usw.) unter Verwendung einer Standard-Seitenbeschreibungssprache,
bekannt als Hypertext Markup Language (HTML), ermöglicht. HTML
bietet eine grundlegende Dokumentformatierung und ermöglicht dem
Entwickler, „Links" zu anderen Servern
und Dateien festzulegen. In dem Internet-Modell wird ein Netzwerkpfad
zu einem Server durch einen sog. Uniform Resource Locator (URL) identifiziert,
der eine spezielle Syntax zum Definieren einer Netzwerkverbindung
aufweist. Die Verwendung eines HTML-kompatiblen Browsers (z. B. Netscape Navigator
oder Microsoft Internet Explorer) an einen Client beinhaltet eine
Spezifikation einer Verbindung über
den URL. In Reaktion darauf erstellt der Client eine Anforderung
an den Server, der in der Verbindung identifiziert wird, und empfängt im Gegenzug ein
Dokument, das gemäß HTML formatiert
ist.
-
Es
war bisher von großem
Interesse, einen Internet-Zugriff bei minimalen wirtschaftlichen
Kosten bereitzustellen. Während
die meisten Computer heutzutage für einen Internet-Zugriff vorkonfiguriert sind,
hat ein deutlicher Anteil an Haushalten immer noch keinen PC. Somit
wurde nun vorgeschlagen, ein Datenverarbeitungssystem anzubieten,
das, wie ein Videorekorder, mit einem Fernseher verbunden und an
Stelle eines PCs verwendet werden kann, um einen Zugang zum Web über eine
herkömmliche Fernsteuervorrichtung,
die mit der Systemeinheit verbunden ist, bereitzustellen. Solch
ein System ermöglicht,
dass der Fernseher in der Tat ein „Web-Gerät" wird. Der Zuschauer kann schnell zwischen
herkömmlichem
Fernsehen und Internet-Zugriff umschalten, indem er die Fernsteuereinheit
verwendet. Alle herkömmlichen
Internet-Zugriffstools und Navigationsfunktionen sind vorzugsweise
in dem System eingebaut und somit für den Anwender verborgen.
-
Ein
solches Tool ist das sog. „Offline-Browsing". Wie jeder gelegentliche
Anwender des Internets bezeugen kann, ist es manchmal schwierig,
auf interessante oder attraktive Websites zuzugreifen, aufgrund
der großen
Anzahl von Besucheranfragen. Deswegen haben mehrere Firmen sog. „Offline"-Browserprogramme
entwickelt, die so ausgelegt sind, dass sie Websites von bevorzugten
Web-Servern zu einer Festplatte des Anwenders liefern, damit sie
durchsucht werden können,
wann immer der Anwender möchte.
Typischerweise umfassen solche Programme eine Art von Zeitplanungsfunktion,
die dem Anwender ermöglicht,
identifizierbare Seiten zu Zeiten außerhalb der Hauptlastzeiten
abzurufen, wodurch Zeit und Verbindungskosten gespart werden. Der
Anwender kann dann Seiten je nach Wunsch durchsuchen, ohne ein Modem
und sogar ohne eine aktive Verbindung zum Internet.
-
Während Offline-Browserprogramme
bestimmte Vorteile bieten, haben sie nicht die Fähigkeit, die Nutzung der Kommunikationsverbindung
zwischen dem Client und dem World Wide Web während des Informationsabrufvorgangs
außerhalb
der Hauptlastzeiten zu optimieren. Dieses Problem wird besonders
dringlich, wenn Einschränkungen
der Zeitdauer vorliegen, in der ein Informationsabruf außerhalb
der Hauptlastzeiten erreicht werden kann. Es wird erwartet, dass
in der Zukunft Web-Geräte
des oben beschriebenen Typs von Computernetzwerk- oder anderen Serviceanbietern
bereitgestellt werden, die nur ihren Abonnenten begrenzte Zeiträume, während derer
ein Offline-Browsing ermöglicht
wird, gestatten. So kann zum Beispiel ein Netzwerkbetreiber das
Offline-Browsing für
seine Abonnenten auf nur eine Stunde pro Nacht beschränken. Während dieser Stunde
kann es sein, dass der Anwender den Inhalt von vielen Websites erhalten
möchte.
Somit wäre
es wünschenswert,
irgendeinen Mechanismus bereitzustellen, der das Abrufen eines Web-Inhalts
während dieses
begrenzten Zeitraums optimieren könnte.
-
Das
Dokument „TeleWeb:
Loosely connected access to the World Wide Web" von ATT Bell Labs des Standes der Technik
offenbart das Abrufen von Informationen von einem Web-Server, wenn
bestimmte Bedingungen erfüllt
sind.
-
Dementsprechend
bietet die vorliegende Erfindung ein Verfahren zum Abrufen eines
Inhalts zur Lieferung an einen Client (100), der über eine
Kommunikationsverbindung (227) mit einen Netzwerk verbunden
werden kann, wobei der Client einen Cachespeicher, ein Cachespeicher-Steuerprogramm und
ein Richtlinien-Steuerprogramm umfasst, wobei das Verfahren die
Schritte umfasst:
- (a) Definieren einer Reihe
von Servern, von denen Inhalt abgerufen und in dem Cachespeicher gespeichert
werden soll;
- (b) Bestimmen (254) eines Aktivitätsgrads für die Kommunikationsverbindung,
während
Inhalt von den Servern zum Cachespeicher heruntergeladen wird; und
- (c) wenn der Aktivitätsgrad
für die
Kommunikationsverbindung unter einem Schwellenwert ist, Ausgeben
(260) von zusätzlichen
Anforderungen nach Inhalt durch das Richtlinien-Steuerprogramm an
das Cachespeicher-Steuerprogramm und
vom Cachespeicher-Steuerprogramm an die Server gemäß einer
Fairness-Richtlinie auf der Grundlage der Anzahl von Bytes, die
von einem bestimmten Server im Cachespeicher empfangen werden, so
dass jeder der Server der Reihe eine Gelegenheit hat, Inhalt an
den Client zu liefern.
-
In
dem bevorzugten Ausführungsbeispiel
ist das Netzwerk das World Wide Web und der Client und die Server
sind ein Web-Client bzw. Web-Server. Die zusätzlichen Anforderungen nach
Inhalt können an
die Reihe von Servern als eine Anforderung pro Server in einer geordneten
Abfolge ausgegeben werden, oder bis zu einer vorbestimmten Anzahl
von Anforderungen pro Server in einer geordneten Abfolge, oder auf
der Grundlage von geeigneten vorbestimmten Parametern, zum Beispiel
die Verbindungstiefe eines Dokuments, das auf einem bestimmten Server liegt,
oder der Anzahl von Bytes, die von einem bestimmten Server im Cachespeicher
empfangen wurden. Der Schwellenwert der Kommunikationsverbindung
kann eine vorgegebene Anzahl von ausstehenden Anforderungen nach
Inhalt sein, oder kann mit einer durchschnittlichen Verbindungsnutzungsrate für ein vorgegebenes überwachtes
Intervall in Verbindung stehen, oder kann jedes andere geeignete
Kriterium sein. In dem bevorzugten Ausführungsbeispiel wird der von
einem Server empfangene Inhalt verarbeitet, um doppelte Verbindungen
und nicht-lokale Verbindungen zu entfernen.
-
Typischerweise
wird der Inhalt während
eines vorbestimmten Zeitraums, zum Beispiel ungefähr eine
Stunde, in den Cachespeicher heruntergeladen. Dieser Zeitraum kann
vom Netzwerkzugriffsanbieter festgelegt sein, oder kann möglicherweise vom
Anwender gewählt
werden. Unter diesen Umständen
wird bestimmt, ob ein vorgegebener Herunterlade-Zeitraum beendet ist, und wenn nicht,
wird der Schritt des Bestimmens eines Aktivitätsgrads für die Kommunikationsverbindung
durchgeführt.
Die zusätzlichen
Anforderungen nach Inhalt werden an den Cachespeicher ausgegeben,
so dass jeder der Server zumindest eine Gelegenheit hat, Inhalt
an den Client während
des vorgegebenen Zeitraums zum Herunterladen zu liefern.
-
Die
Erfindung bietet ferner ein Computerprogrammprodukt zum Abrufen
von Inhalt zur Lieferung an einen Client, der über eine Kommunikationsverbindung
mit einem Netzwerk verbunden werden kann, wobei der Client einen
Cachespeicher umfasst, wobei das Computerprogrammprodukt umfasst:
ein computerlesbares Speichermedium mit einem Substrat; und ein
Programm, das in dem Substrat des computerlesbaren Speichermediums
codiert ist, wobei das Programm Mittel zur Durchführung der
hier beschriebenen Verfahren umfasst.
-
Die
Erfindung umfasst ferner einen Computer gemäß Anspruch 3, der die hier
beschriebenen Verfahren durchführt.
-
Vorzugsweise
umfasst ein Web-Browserprogramm ein Menü zum Erzeugen der Liste von
Websites, die während
einer Herunterladesitzung außerhalb
der Hauptlastzeiten heruntergeladen werden sollen; wobei das Cachespeicher-Steuerprogramm Mittel
zum Empfangen von heruntergeladenen Daten umfasst, die im Cachespeicher
zum Offline-Browsing gespeichert sind; und das Cachespeicher-Steuerprogramm
sicherstellt, dass jede der Websites auf der Liste eine Gelegenheit
hat, Inhalt während
einer vorgegebenen Herunterladesitzung beizusteuern.
-
Von
einem weiteren Gesichtspunkt betrachtet, bietet die Erfindung einen
Computer, umfassend: einen Prozessor; einen Speicher mit einem Cachespeicher;
ein Modem, das mit einer Kommunikationsverbindung verbunden ist;
ein Web-Browserprogramm, das vom Prozessor abgearbeitet wird, um
einen Informationsabruf aus dem World Wide Web bereitzustellen,
und mit Menüs
zum Erzeugen einer Liste von Websites, die während einer Herunterladesitzung
außerhalb
der Hauptlastzeiten heruntergeladen werden sollen; ein Cachespeicher- Speicherprogramm,
das vom Prozessor ausgeführt
wird, um Herunterlade-Anforderungen an die Kommunikationsverbindung
auf der Grundlage der Liste von Websites einzuleiten und um heruntergeladene
Daten zu empfangen, die im Cachespeicher für ein Offline-Browsing gespeichert
sind; und ein Fairnessrichtlinien-Steuerprogramm, das vom Prozessor
ausgeführt wird,
welches viele HTTP GET Anforderungen an das Cachespeicher-Steuerprogramm ausgibt,
um sicherzustellen, dass jede der Websites auf der Liste eine Gelegenheit
hat, Inhalt während
einer vorgegebenen Herunterladesitzung beizusteuern.
-
Somit
kann die Nutzung einer Kommunikationsverbindung zwischen einem Web-Gerät und den Servern
des World Wide Web optimiert werden, indem die Cachespeicherung
von Web-Daten außerhalb
der Hauptlastzeiten, wenn der Zugriff des Client auf das Netzwerk
beschränkt
ist, verbessert wird, indem sichergestellt wird, dass die Verbindung
zwischen einem Web-Client und einem oder mehreren Web-Servern in
ihrer maximalen Bandbreite während solch
einer zeitlich begrenzten Browsing-Sitzung außerhalb der Hauptlastzeiten
genutzt wird. Dies stellt eine Verbesserung der Funktionalität der Offline-Browsingprogramme
dar, um die begrenzten Kommunikationsressourcen effizienter zu nutzen, und
hilft dabei, die maximale Ausnutzung des Web-Clientmodems während der
Cachespeicherung von Web-Daten außerhalb der Hauptlastzeiten
vom World Wide Web des Internets sicherzustellen. Der hier beschriebene
Denkansatz ermöglicht
gleichberechtigtes Cachespeichern von Inhalt aus einer Vielzahl
von Websites während
einer automatischen Herunterladesitzung, so dass ein Anwender einen
deutlichen Anteil der heruntergeladenen Daten, die er möchte, erhält, wobei
jede einer Vielzahl von Websites eine Gelegenheit hat, Inhalt an
einen Client während
einer automatischen Herunterladesitzung zu liefern.
-
Die
hier beschriebenen Verfahren sind insbesondere geeignet, ein Web-Gerät mit einer
Offline-Browsing-Fähigkeit
bereitzustellen, und genauer, ein effizientes Webbrowsing außerhalb
der Hauptlastzeiten für
eine solche Web-Client-Anwendung, z. B. ein mit einem herkömmlichen
Fernseher verbundenes Datenverarbeitungssystem, zu ermöglichen.
-
Wie
hier beschrieben, kann Web-Inhalt von einer Vielzahl von Web-Servern
zur Lieferung an einen Web-Client abgerufen werden, der mit dem World
Wide Web über
eine Kommunikationsverbindung verbunden werden kann. Der Web-Client
ist vorzugsweise ein Datenverarbeitungssystem, das mit einem Fernseher
oder einem anderen herkömmlichen
Monitor verbunden werden kann, um einen kostengünstigen Internetzugang zu ermöglichen.
Zu Beginn definiert der Anwender eine Reihe von einem oder mehreren
Servern, von denen Inhalt abgerufen und im Cachespeicher gespeichert
werden soll. Diese Server werden vorzugsweise durch eine „Liste" von favorisierten
Websites identifiziert. Ein Test wird dann durchgeführt um zu
bestimmen, ob ein vorgegebener Herunterladezeitraum geendet hat.
Typischerweise tritt dieser Herunterladezeitraum während einer „Ausschaltzeit", z. B. mitten in
der Nacht, auf, um eine Verkehrsstörung an den Web-Serversites zu verhindern.
Wenn der vorgegebene Herunterladezeitraum nicht geendet hat, wird
dann ein Aktivitätsgrad
für die
Kommunikationsverbindung bestimmt, während Inhalt von einem oder
mehreren Servern zum Cachespeicher heruntergeladen werden. Wenn
der Aktivitätsgrad
für die
Kommunikationsverbindung geringer als ein vorgegebener Schwellenwert
ist, werden zusätzliche
Anforderungen nach Inhalt gemäß der sog. „Fairnessrichtlinie" an den Cachespeicher
ausgegeben, die sicherstellt, dass Inhalt von so vielen Seiten wie
möglich
während des
Herunterladezeitraums heruntergeladen werden.
-
Somit
werden zum Beispiel gemäß der Fairnessrichtlinie
die zusätzlichen
Anforderungen nach Inhalt an die Reihe von einem oder mehreren Servern
als eine Anforderung pro Server in einer geordneten Abfolge ausgegeben.
Alternativ werden die zusätzlichen
Anforderungen nach Inhalt an die Reihe von einem oder mehreren Servern
bis zu einer vorbestimmten Anzahl von Anforderungen pro Server in
einer geordneten Abfolge ausgegeben. Oder die zusätzlichen
Anforderungen werden an die Reihe von einem oder mehreren Servern
auf der Grundlage der Anzahl von Bytes, die von einem bestimmten
Server im Cachespeicher empfangen werden, ausgegeben. Die Fairnessrichtlinie
stellt sicher, das kein Server die Herunterladesitzung unter Ausschluss
der anderen Server, von denen der Anwender Inhalt herunterladen
möchte,
dominiert. Wenn Inhalt (d. h. ein Web-Dokument) von einem bestimmten
Server empfangen wird, wird es im Cachespeicher für ein Offline-Browsing
gespeichert. Vor dem Speichern entfernt die Routine vorzugsweise
doppelte und/oder nicht-lokale HTML-Links, so dass nachfolgende Zugriffsanforderungen
auf das gleiche Dokument schneller ausgeführt werden.
-
Ein
Datenverarbeitungssystem wird bereitgestellt, um einen kostengünstigen
Internetzugang zu erleichtern. Das System umfasst zwei Hauptteile: eine
Fernsteuereinheit und eine Basiseinheit, die mit einem Monitor verbunden
werden kann, um einen Internetzugang unter der Steuerung der Fernsteuereinheit
zu ermöglichen.
Die Basiseinheit ist in der Tat ein Computer und umfasst ein Modem,
das mit einer Kommunikationsverbindung verbunden ist, einen Prozessor,
einen Speicher und verschiedene integrierte Steuerprogramme. Diese
Programme umfassen ein Browserprogramm einschließlich einer Einrichtung, die
auf Befehle von der Fernsteuereinheit reagiert, um eine Liste von
Websites zu erzeugen, und ein Cachespeicher-Steuerprogramm zum Einleiten
von Herunterladeanforderungen an die Kommunikationsverbindung auf
der Grundlage der Liste der Websites. Eine Optimierungsroutine hält die maximale
Nutzung des Modems während
einer Herunterladesitzung aufrecht, indem mehrfache HTTP GET Anforderungen
an das Cachespeicher- Steuerprogramm auf
der Grundlage der Fairnessrichtlinie ausgegeben werden.
-
Verschiedene
Ausführungsbeispiele
der Erfindung werden nun genau anhand nur eines Beispiels unter
Bezugnahme auf die nachfolgenden Zeichnungen beschrieben:
-
1A ist
eine bildliche Darstellung einer Datenverarbeitungssystemeinheit,
die mit einem herkömmlichen
Fernseher verbunden ist, um ein „Web-Gerät" zu bilden;
-
1B ist
eine bildliche Darstellung einer Frontkonsole der Datenverarbeitungssystemeinheit der 1A;
-
1C ist
eine bildliche Darstellung einer Rückkonsole der Datenverarbeitungssystemeinheit der 1A;
-
1D ist
eine bildliche Darstellung einer Fernsteuereinheit, die mit der
Datenverarbeitungssystemeinheit der 1A verbunden
ist;
-
2 ist
ein Blockdiagramm der Hauptbestandteile der Datenverarbeitungssystemeinheit;
-
3 ist
eine repräsentative
Liste der „Favoriten", die von einem Anwender
als Ergebnis eines Durchsuchens des World Wide Web erzeugt wird;
-
4 ist
eine repräsentative
Server-URL-Ablaufliste für
die Favoritenliste der 3;
-
5 ist
ein Flussdiagramm eines bevorzugten Verfahrens der vorliegenden
Erfindung zum Optimieren der Kommunikationsverbindungsaktivität während einer
Herunterladesitzung außerhalb
der Hauptlastzeiten;
-
6 ist
ein Flussdiagramm der Prozessreaktionsroutine, die für jedes
Web-Dokument durchgeführt
wird, das in Reaktion auf eine URL-Anforderung empfangen wird;
-
7 ist
ein Blockdiagramm einer repräsentativen
Web-Server-Plattform
oder Website; und
-
8 ist
ein Flussdiagramm der Verfahren, die von einem Web-Server in Reaktion
auf den Empfang einer Anforderung von einem Internet-Client, wie
des hier beschriebenen Web-Geräts,
ausgeführt werden.
-
Unter
Bezugnahme auf die Figuren und insbesondere unter Bezugnahme auf 1A bis 1D werden
nun verschiedene bildliche Darstellungen eines Datenverarbeitungssystems
dargestellt. 1A ist eine bildliche Darstellung
des Datenverarbeitungssystems als Ganzes. Das Datenverarbeitungssystem 100 in
dem dargestellten Beispiel bietet Zugang zum Internet bei minimalen
wirtschaftlichen Hardwarekosten für den Anwender. Das Datenverarbeitungssystem 100 umfasst
eine Datenverarbeitungseinheit 102. Die Datenverarbeitungseinheit 102 ist
vorzugsweise so bemessen, dass sie in typische Unterhaltungsgeräteanordnungen
passt und bietet alle erforderlichen Funktionen, die herkömmlicherweise
in PCs zu finden sind, um einem Anwender zu ermöglichen, das Internet zu durchsuchen.
Zusätzlich
kann die Datenverarbeitungseinheit 102 andere übliche Funktionen
bereitstellen, kann z. B. als Anrufbeantworter dienen oder Faxübertragungen
empfangen.
-
Die
Datenverarbeitungseinheit 102 ist mit einem Fernseher 104 zur
Anzeige von graphischen Informationen verbunden. Der Fernseher 104 kann
jeder geeignete Fernseher sein, auch wenn Farbfernseher mit einem
S-Video-Eingang bessere Darstellungen der graphischen Informationen
bieten. Die Datenverarbeitungseinheit 102 kann mit dem
Fernseher 104 durch eine Standard-Koaxialkabelverbindung
verbunden sein. Eine Fernsteuereinheit 106 ermöglicht einem
Anwender, mit der Datenverarbeitungseinheit zu kommunizieren und
diese zu steuern. Die Fernsteuereinheit 106 gibt Infrarotsignale
(IR) aus, vorzugsweise auf einer anderen Frequenz als die normalen
Fernseher-, Stereo- und VCR-Infrarot-Fernsteuerfrequenzen moduliert,
um Störungen zu
vermeiden. Die Fernsteuereinheit 106 bietet die Funktionalität einer
Zeigevorrichtung (wie eine Maus, Gleitpunkt, Trackball oder dergleichen)
in herkömmlichen
PCs, einschließlich
der Möglichkeit,
einen Cursor auf einer Anzeige zu bewegen und Menüpunkte auszuwählen.
-
1B ist
eine bildliche Darstellung der Frontkonsole der Datenverarbeitungseinheit 102 gemäß einem
bevorzugten Ausführungsbeispiel
der vorliegenden Erfindung. Die Frontkonsole umfasst ein Infrarotfenster 108 zum
Empfangen von Signalen von der Fernsteuereinheit 106 und
zum Übertragen von
Infrarotsignalen. Die Datenverarbeitungseinheit 102 kann
Infrarotsignale übertragen,
die von Objekten oder Oberflächen
reflektiert werden, was es der Datenverarbeitungseinheit 102 erlaubt,
automatisch den Fernseher 104 und andere infrarot ferngesteuerte
Geräte
zu steuern. Eine Lautstärkensteuerung 110 erlaubt
eine Einstellung des Geräuschpegels,
der von einem Lautsprecher innerhalb der Datenverarbeitungseinheit 102 oder
vom Fernseher 104 ausgegeben wird. Eine Vielzahl von Leuchtdioden-Anzeigen
(LED) 112 geben einen Hinweis an den Anwender darüber, ob
die Datenverarbeitungseinheit 102 eingeschaltet ist, ob
der Anwender Mitteilungen hat, ob die Modem-/Telefonleitung aktiv
ist oder ob die Datenverarbeitungseinheit 102 eine Inspektion
benötigt.
-
1C ist
eine bildliche Darstellung der Rückkonsole
der Datenverarbeitungseinheit 102 gemäß einem bevorzugten Ausführungsbeispiel
der vorliegenden Erfindung. Ein isoliertes Dreileitungs-Netzkabel
(Masse inbegriffen) 114 verläuft durch die Rückkonsole.
Standard-Telefonbuchsen 116 und 118 auf der Rückkonsole
bieten eine Eingabe zu einem Modem von der Telefonleitung und eine Ausgabe
an einen Hörer
(nicht gezeigt). Die Rückkonsole
weist außerdem
eine Standard-Computertastaturverbindung 120,
einen Mausanschluss 122, einen Computermonitoranschluss 124,
einen Druckeranschluss 126 und einen zusätzlichen
seriellen Anschluss 128 auf. Diese Verbindungen können genutzt werden,
um der Datenverarbeitungseinheit 102 zu ermöglichen,
in der Art eines herkömmlichen
PCs zu arbeiten. Ein Spieleanschluss 130 auf der Rückkonsole
bietet eine Verbindung für
einen Joystick oder eine andere Spielsteuervorrichtung (Handschuh, usw.).
Eine Infrarot-Nebenstellenbuchse 132 ermöglicht,
dass eine kabelgebundene Infrarot-LED verwendet werden kann, um
Infrarotsignale zu übertragen.
Eine Mikrophonbuchse 134 ermöglicht, dass ein externes Mikrophon
mit der Datenverarbeitungseinheit 102 verbunden werden
kann.
-
Eine
Videoverbindung 136, ein Standard-Koaxialkabelverbinder,
verbindet zum Videoeingangsanschluss des Fernsehers 104 oder
einen Videokassettenrekorder (nicht gezeigt). Linke und rechte Audiobuchsen 138 verbinden
zu entsprechenden Audioeingangsverbindern am Fernseher 104 oder
einer Stereoanlage (nicht gezeigt). Wenn der Anwender einen S-Video-Eingang
hat, dann kann die S-Video-Verbindung 140 verwendet werden,
um zum Fernseher 104 zu verbinden, um ein besseres Bild als
das zusammengesetzte Signal zu bieten. Wenn der Fernseher 104 keine
Videoeingänge
hat, kann ein externer Kanal-3/4-Modulator (nicht gezeigt) in Reihe
mit der Antennenverbindung verbunden werden.
-
1D ist
eine bildliche Darstellung der Fernsteuereinheit 106 gemäß einem
bevorzugten Ausführungsbeispiel
der vorliegenden Erfindung. Ähnlich
zu einem Standard-Telefontastenfeld, weist die Fernsteuereinheit 106 Tasten 142 mit
arabischen Zahlen 0 bis 9, dem Asterisk- oder „Stern"-Symbol (*) und der Rautetaste (#) auf.
Die Fernsteuereinheit umfasst außerdem eine „TV"-Taste 144 zum
wahlweisen Ansehen von Fernsehsendungen und eine „Web"-Taste 146 zum
Einleiten des Durchsuchens des Internets. Das Drücken der „Web"-Taste 146 verursacht, dass
die Datenverarbeitungseinheit 102 einen Modemverbindungsaufbau
zum Internetservice-Provider des Anwenders einleitet und den Startbildschirm
für einen
Internet-Browser anzeigt. Der Browser umfasst ein Merkmal „Favoriten" oder „Lesezeichen", das es dem Betrachter
ermöglicht,
den Uniform Resource Locator (URL) für diejenigen Websites, die
der Anwender wieder besuchen möchte, aufzuzeichnen.
-
Eine
Zeigevorrichtung 147, die vorzugsweise ein Trackpoint oder
eine Tastenzeigevorrichtung ist, ist auf der Fernsteuereinheit 106 enthalten
und ermöglicht
einem Anwender, einen Cursor auf der Anzeige des Fernsehers 104 zu
betätigen.
Tasten „Vor" und „Zurück" 148 bzw. 150 ermöglichen
einem Anwender, eine Option auszuwählen oder zu einer vorherigen
Auswahl zurückzukehren.
Die Taste „Hilfe" 151 veranlasst,
dass kontextbezogene Hilfe angezeigt oder anderweitig bereitgestellt
wird. Die Taste „Menü" 152 veranlasst,
dass ein kontextbezogenes Menü von
Optionen angezeigt wird, und die Taste „Aktualisieren" 153 aktualisiert
die angezeigten Optionen auf der Grundlage der Eingabe des Anwenders, während die
Taste „Ausgangsposition" 154 dem
Anwender ermöglicht,
zu einer Standardanzeige der Optionen zurückzukehren. Eine der Optionen
ist die Favoriten- oder Lesezeichenliste. Eine repräsentative
Liste ist in 3 als ein Pulldown-Menü 155 auf dem
Fernsehschirm gezeigt. Tasten „PgUp" (Seite aufwärts) und „PgDn" (Seite abwärts) 156 und 158 ermöglichen
dem Anwender, den Kontext der Anzeige in anzeigefenstergroßen Blöcken statt
durch Bildschirmrollen zu verändern.
Die Taste „Nachricht" 160 ermöglicht dem
Anwender, Nachrichten abzurufen.
-
Zusätzlich zu,
oder statt der Fernsteuereinheit 106 kann eine Infrarottastatur
(nicht gezeigt) mit einer integrierten Zeigevorrichtung verwendet
werden, um die Datenverarbeitungseinheit 102 zu steuern.
Die integrierte Zeigevorrichtung ist vorzugsweise ein Trackpoint
oder eine tastenförmige
Zeigevorrichtung. Eine kabelgebundene Tastatur (ebenfalls nicht gezeigt)
kann ebenfalls über
die Tastaturverbindung 120 verwendet werden, und eine kabelgebundene Zeigevorrichtung
wie eine Maus oder ein Trackball können über den Mausanschluss 122 verwendet werden.
Wenn ein Anwender die Fernsteuereinheit 106 und/oder die
Infrarottastatur und/oder die kabelgebundene Tastatur und/oder die
kabelgebundene Zeigevorrichtung in Betrieb hat, sperrt die aktive
Vorrichtung alle anderen, bis ein vorgeschriebener Zeitraum der
Inaktivität
verstrichen ist.
-
Bezugnehmend
auf 2 wird nun ein Blockdiagramm für die Hauptbauteile der Datenverarbeitungseinheit 102 gemäß einem
bevorzugten Ausführungsbeispiel
der vorliegenden Erfindung geschildert. Wie bei herkömmlichen
PCs umfasst die Datenverarbeitungseinheit 102 eine Hauptplatine 202 mit
einem Prozessor 204 und einem Speicher 206, der
mit einem Systembus 208 verbunden ist. Der Prozessor 204 ist
vorzugsweise ein Prozessor mindestens der 486-er Klasse und arbeitet
bei oder über
100 MHz. Der Speicher 206 kann einen Cachespeicher und/oder
einen Video-RAM enthalten. Der Prozessor 204, der Speicher 206 und
der Systembus 208 arbeiten in der gleichen Weise wie die
entsprechenden Bauteile in einem herkömmlichen Datenverarbeitungssystem.
-
Ein
Video-/TV-Wandler 210, der auf der Hauptplatine 202 liegt
und mit dem Systembus 208 verbunden ist, erzeugt Computervideosignale
für Computerbildschirme,
ein Composite-Fernsehsignal und
ein S-Video-Signal. Die Funktionalität des Video-/TV-Wandlers 210 kann
durch einen Trident TVG9685 Videochip in Verbindung mit einem Analog Devices
AD722 Wandlerchip erzielt werden. Es kann sein, dass der Video-/TV-Wandler 210 das
Laden von speziellen Betriebssystemgerätetreibern erfordert.
-
Eine
Tastatur-/Fernsteuer-Schnittstelleneinheit 212 auf der
Hauptplatine 202 empfängt
Tastaturcodes über
eine Steuerung 214, ungeachtet dessen, ob eine kabelgebundene
Tastatur-/Zeigevorrichtung oder
eine Infrarot-Tastatur/Fernsteuerung verwendet wird. Die Infrarot-Fernsteuereinheit 106 überträgt Signale,
die schließlich
als Steuersignale, die von den üblichen
Maus- oder Zeigevorrichtungsbewegungen erzeugt werden, an den seriellen
Anschluss gesandt werden. Zwei Tasten auf der Fernsteuereinheit 106 werden
genau wie die zwei Tasten auf einer herkömmlichen Maus interpretiert,
während
die restlichen Tasten Signale entsprechend den Tastaturanschlägen auf
einer Infrarot-Tastatur übertragen.
Somit weist die Fernsteuereinheit 106 eine Untermenge der
von einer Infrarot-Tastatur bereitgestellten Funktionen auf.
-
Verbinder/Anzeiger 216 auf
der Hauptplatine 202 bieten einige der Verbindungen und
Anzeigen auf der oben beschriebenen Datenverarbeitungseinheit 102.
Andere Verbindungen gehören
zu anderen Bauteilen und sind auf diesen zu finden. Zum Beispiel liegen
die Telefonbuchsen 116 und 118 auf einem Modem 222.
Die Stromanzeige innerhalb der Verbinder/Anzeiger 216 wird
durch eine Steuerung 214 gesteuert.
-
Außerhalb
der Hauptplatine 202 liegen in dem gezeigten Beispiel eine
Stromzufuhr 218, eine Festplatte 220, ein Modem 222 und
ein Lautsprecher 224. Die Stromzufuhr 218 ist
eine herkömmliche Stromzufuhr,
außer
dass sie ein Steuersignal von der Steuerung 214 empfängt, welches
die gesamte Stromzufuhr zur Hauptplatine 202, Festplatte 220 und
Modem 222 abschaltet. In manchen Wiederherstellungssituationen
ist das Kappen der Stromzufuhr und ein erneutes Booten das einzig
sichere Verfahren, um alle diese Geräte auf einen bekannten Zustand
zurückzusetzen.
Somit kann die Stromzufuhr 218 in Reaktion auf ein Signal
von der Steuerung 214 die Datenverarbeitungseinheit 102 herunterfahren und
neu starten.
-
Die
Steuerung 214 ist vorzugsweise eine oder mehrere aus der
Familie der 805x-Steuerungen. Die Steuerung 214 empfängt und
verarbeitet die Eingabe von der Infrarot-Fernsteuerung 106,
der Infrarot-Tastatur, der kabelgebundenen Tastatur oder der kabelgebundenen
Maus. Wenn eine Tastatur oder Zeigevorrichtung verwendet wird, sind
alle anderen gesperrt (werden ignoriert), bis keine für einen
vorgeschriebenen Zeitraum aktiv ist. Dann sperrt die erste Tastatur
oder Zeigevorrichtung, die Aktivität erzeugt, alle anderen. Die
Steuerung 214 steuert auch alle LED-Anzeiger außer demjenigen, der die Modemverwendung
anzeigt. Als Teil des Fehlerbehebungssystems bestimmt die Steuerung 214 die
Bootsektorauswahl während
jedes Strom-Ein-Aus-Zyklus.
-
Die
Festplatte 220 enthält
das Betriebssystem und Anwendungssoftware für die Datenverarbeitungseinheit 102,
welche vorzugsweise beinhaltet: IBM DOS 7.0, ein Produkt der International
Business Machines Corporation in Armonk, New York; ein Betriebssystem
wie Windows 3.1 (oder höher),
ein Produkt der Microsoft Corporation in Redmond, Washington; und
Netscape Navigator (Version 1.0 oder höher), ein Produkt der Netscape
Communications Corporation in Mountain View, Kalifornien. Geringfügige Modifikationen
dieser Softwarepakete können wünschenswert
sein, um die Leistung der Datenverarbeitungseinheit 102 zu
optimieren. Außerdem
ist es äußerst wünschenswert,
eine oder mehrere dieser Standardprogramme sowie andere von der
vorliegenden Erfindung genutzte Software durch Herunterladen neuer
Versionen des Codes über
das Internet zu aktualisieren. Das Web-Gerät enthält geeignete Steuersoftware,
um ein solches Herunterladen zu vereinfachen. Die Festplatte 220 speichert
außerdem Daten,
wie die Liste der bevorzugten Internetseiten oder ungelesene heruntergeladene
Daten von einer oder mehreren Internetseite(n). Ein Cachespeicher-Steuerprogramm 225,
das vom Prozessor ausgeführt
wird, wird verwendet, um diese heruntergeladenen Daten zu verwalten
und zu handhaben, wie später
beschrieben wird.
-
Das
Modem 222 kann jedes geeignete Modem sein, das in herkömmlichen
Datenverarbeitungssystemen verwendet wird, ist aber vorzugsweise
ein 33,6 kbps Modem, das V.42bis, V.34, V.17 Fax, MNP 1–5 und AT-Befehle
unterstützt.
Um die geringe Höhe
des Datenverarbeitungssystems 102 beizubehalten, ist das
Modem 222 vorzugsweise in einen Schlitz eingesetzt, der
seitlich auf der Hauptplatine 202 befestigt ist. Das Modem 222 ist
mit einer physikalischen Kommunikationsverbindung 227 verbunden,
welche wiederum mit dem World Wide Web des Internets (nicht gezeigt)
verbunden ist oder verbunden werden kann. Wie gut bekannt ist, ist
das World Wide Web das Multimedia-Informationsabrufsystem des Internets
auf der Grundlage des Hypertext Transfer Protocol (HTTP), welches
den Anwendern Zugriff auf Dateien unter Verwendung von Hypertext
Markup Language (HTML) ermöglicht.
Ein Verbindungsaktivitäts-Überwachungsgerät 229 bestimmt
das Ausmaß, in
dem die Kommunikationsverbindung 227 zu einem vorgegebenen
Zeitpunkt genutzt wird. Das Verbindungsaktivitäts-Überwachungsgerät kann eine
hardware-basierte Steuerung oder eine Softwareanwendung sein, die
vom Prozessor ausgeführt
wird.
-
Ein
Web-Server, manchmal als Website bezeichnet, unterstützt Hypertext-Dokumente
in Verzeichnissen und Dateien, auf die über den Uniform Resource Locator
zugegriffen werden kann. Typischerweise werden alle Hypertext-Dokumente,
die auf einer bestimmten Website verfügbar sind, als Teil der gleichen
Domain betrachtet (z. B. www.Domainname.com). Seiten, die lokal
auf der Domain sind, werden üblicherweise
durch einen jeweiligen Verweis identifiziert, der einen Bezug auf
einen Pfad und/oder Dateinamen innerhalb der Domain darstellt, z.
B. www.Domainname.com/Pfad/html1. Ein beispielhafter Web-Server
ist in 7 unten dargestellt.
-
Die
Fachleute auf dem Gebiet werden erkennen, dass die in 1A bis 1D und 2 dargestellten
und oben beschriebenen Bauteile für spezielle Anwendungen oder
Ausführungsbeispiele
variiert werden können.
-
Es
ist wünschenswert,
einem Anwender des Datenverarbeitungssystems zu ermöglichen,
das Web „offline" zu durchsuchen.
Diese Funktion wird von der Cachespeicher-Steuerung 225 bereitgestellt. Die
Cachespeicher-Steuerung kann ein Teil einer dedizierten Hardware
sein, oder sie kann ein Anwendungsprogramm sein, das vom Prozessor
ausgeführt wird.
In dem bevorzugten Ausführungsbeispiel
ist die Cachespeicher-Steuerung 225 als
ein Softwareprogramm implementiert, das über Internet-Downloads aktualisiert
werden kann.
-
Wie
oben erwähnt,
kann ein Betrachter während
einer oder mehrerer Online-Durchsuchsitzungen eine Liste von „Favoriten"- oder „Lesezeichen"-Websites zusammenstellen,
die er erneut besuchen möchte.
Die gesamte Liste oder irgendein Bereich dieser Liste kann auch
für einen
Offline-Zugriff ausgelegt sein, so dass der Inhalt dieser Seiten heruntergeladen
und in einem dedizierten Cachespeicher der Festplatte für ein späteres Ansehen, vorzugsweise
Offline, gespeichert werden kann. Das Cachespeicher-Steuerprogramm
umfasst somit eine Steuervorrichtung 231 (vorzugsweise
in der Software implementiert, die vom Prozessor ausgeführt wird) zum
Steuern des Modems 222, um sich einzuwählen und automatisch mit den
Internetseiten zu verbinden (d. h. jede Nacht, während das Gerät unbeaufsichtigt ist).
Wie in 4 gezeigt, ist jede Favoriten-Website mit einer Server-URL-Ablaufliste 235 verbunden. Eine
Server-URL-Ablaufliste 235 ist eine Datenstruktur, welche
die URL der Website wie auch eine oder mehrere HTML-Verweise, die
von der Seite abzweigen (d. h. innerhalb dieser liegen) identifiziert.
Vorzugsweise beinhaltet die Server-URL-Ablaufliste 235 nur relative
Verweise, auch wenn dies nicht in allen Ausführungsbeispielen der Fall sein
muss. Außerdem
ist, auch wenn die Ablaufliste 235 als ein dedizierter
Bereich des Speichers 206 gezeigt ist, dies keine Voraussetzung,
da die Ablaufliste eine verbundene Liste oder jede andere geeignete
Datenstruktur sein kann.
-
In
einem repräsentativen
Ausführungsbeispiel
hat der Anwender nicht die Möglichkeit,
den Zeitraum, während
dem das Gerät
Inhalt von einer Internetseite zwischenspeichert, festzulegen; stattdessen
ist dieser Zeitraum vom Netzwerkserviceprovider vorbestimmt. Im
Allgemeinen ist dieser Zeitraum begrenzt, z. B. auf eine (1) Stunde
pro Nacht. Deshalb enthält
das Cachespeicher-Steuerprogramm 225 auch eine Optimierungsroutine,
um sicherzustellen, dass das Modem 222 während des
begrenzten Zeitraums, in dem Internetseiten auf der Festplatte 220 zwischengespeichert
werden können,
seine maximale Leistungsfähigkeit
nutzt. Außerdem
umfasst die Optimierungsroutine eine „Lastausgleichsfunktion", um sicherzustellen,
dass Inhalt, der von den Server-URL-Ablauflisten identifiziert wurde, während des
Herunterladezeitraums gerecht zwischengespeichert wird. Wie zu sehen
sein wird, ermöglicht
dies dem Betrachter, einen deutlichen Anteil der heruntergeladenen
Daten, die er wünscht,
zu erhalten.
-
Diese
Optimierungsroutine wird nun unter Bezugnahme auf das Flussdiagramm
der 5 beschrieben. Die grundlegende Verarbeitung der
Routine beginnt bei Schritt 250 mit einem Test, um zu bestimmen,
ob es an der Zeit ist, den Prozess zu stoppen, d. h. ob der vorbestimmte
Herunterladezeitraum verstrichen ist. Wie oben diskutiert, ist dieser
Herunterladezeitraum in einem beispielhaften Ausführungsbeispiel
eine (1) Stunde, auch wenn anzuerkennen ist, dass andere Zeiträume ebenfalls
verwendet werden können.
Dieser Zeitraum kann wahlweise eingestellt werden, falls gewünscht, aber
normalerweise nicht vom Anwender. Wenn das Ergebnis des Tests in
Schritt 250 positiv ist, ist die grundlegende Verarbeitungsroutine
in Schritt 252 vollendet. Wenn mehr Zeit verfügbar ist,
dann geht die Routine weiter zu Schritt 254, um die Aktivität auf der
Kommunikationsverbindung 227, mit der das Modem 222 verbunden
ist, abzufragen. Schritt 254 bestimmt, durch Empfangen
von Informationen von dem Verbindungsaktivitäts-Überwachungsgerät 229,
wie viel „Bandbreite" seit einem letzten
Schritt oder Zyklus (der Routine) genutzt wird. Die Routine geht
dann weiter zu Schritt 256, um zu testen, ob die gemessene
Verbindungsaktivität
einige der Kriterien der Hochbelastungsnutzung erfüllt.
-
Wie
oben erläutert,
ist es ein Ziel der vorliegenden Erfindung, den Herunterladedurchsatz
zum Cachespeicher während
des Herunterladezeitraums zu maximieren. Die Kriterien der Hochbelastungsnutzung
sind im Allgemeinen von Bedingungen auf der Kommunikationsverbindung,
der Art des Modems oder solch anderen Kriterien, wie sie vorbestimmt oder
definiert werden können,
abhängig.
Somit kann zum Beispiel ein Kriterium der Hochbelastungsnutzung
durch eine durchschnittliche Verbindungsnutzung für einen überwachten
Zeitraum, die um ein vorab festgelegtes Limit zwischen 0–100% überschritten wird,
definiert werden. Oder ein Kriterium der Hochbelastungsnutzung kann
auf einer vordefinierten Begrenzung der Anzahl von ausstehenden
HTTP GET Anforderungen basieren, die vom Cachespeicher-Manager zum
Netzwerk ausgegeben werden. Eine vorgegebene Anforderung HTTP GET
wird verwendet, um ein Herunterladen von Inhalt von einer vorgegebenen
Website anzufordern. Somit kann ein Kriterium der Hochbelastungsnutzung
zum Beispiel so definiert sein, dass es umfasst: nicht weniger als insgesamt
N ausstehende Anforderungen HTTP GET, nicht mehr als insgesamt M
ausstehende GET Anforderungen (M > N)
usw. Es ist anzuerkennen, dass andere geeignete Kriterien der „Hochbelastungsnutzung" ebenfalls im Vergleich
bei Schritt 256 verwendet werden können.
-
Wenn
die Verbindungsaktivität
die Kriterien der Hochbelastungsnutzung erfüllt, dann wird das Modem 222 mit
seiner maximalen Leistungsfähigkeit genutzt.
Dadurch ist das Ergebnis des Tests bei Schritt 256 positiv
und die Routine macht eine Schleife zu Schritt 258, was
als eine Verzögerung
angezeigt wird. Dieses Kästchen
zeigt an, dass keine weiteren Anforderungen nach Inhalt vorgelegt
wurden. Die Routine kehrt dann zu Schritt 250 zurück, wie vorher
beschrieben wurde.
-
Wenn
jedoch die Verbindungsaktivität
die Kriterien der Hochbelastungsnutzung nicht erfüllt, dann
wird das Modem in der Tat nicht mit seiner maximalen Leistungsfähigkeit
genutzt. Dies ist ein negatives Ergebnis des Tests bei Schritt 256.
Dadurch geht die Routine weiter zu Schritt 260, um eine
weitere URL von einer Server-URL-Ablaufliste zu erhalten. Die genaue
Art und Weise, wie dies erreicht wird, wird nachfolgend beschrieben,
aber es ist anzuerkennen, dass dies eine Ausgleichsfunktion beinhaltet,
um sicherzustellen, dass Inhalt, der von der Server-URL-Ablaufliste bzw.
den Listen 235 identifiziert wurde, gerecht während der
Sitzung zwischengespeichert wird. In Schritt 262 wird ein
Test durchgeführt,
um zu bestimmen, ob eine URL von einer Ablaufliste erhalten wurde.
Wenn nicht, geht die Routine bei Schritt 263 mit einem
Test weiter, ob die Gesamtanzahl der ausstehenden Anforderungen
größer als
0 ist. Wenn das Ergebnis des Tests bei Schritt 263 positiv
ist, dann kehrt die Routine zum Pfad der Verzögerung 258 zurück und wird
zurückgeführt. Wenn das
Ergebnis des Tests bei Schritt 263 negativ ist, was bedeutet,
dass keine weiteren ausstehenden Anforderungen vorhanden sind, ist
die Routine erledigt und endet. Dieses Ergebnis würde zum
Beispiel auftreten, wenn keine nicht bedienten URLs mehr auf irgendeiner
Server-URL-Ablaufliste vorhanden sind. Wenn eine URL in Schritt 260 erhalten
wurde, ist das Ergebnis des Tests bei Schritt 262 positiv
und die Routine geht weiter zu Schritt 264, um die URL-Anforderung
der Cachespeicher-Steuerung vorzulegen. Auch wenn es hier nicht
im Detail beschrieben ist, sollte anerkannt werden, dass die Cachespeicher-Steuerung
dann die Anforderung in einer bekannten Weise verarbeitet, um den
Herunterladevorgang einzuleiten. Die Routine geht dann weiter zu Schritt 266,
um einen Zähler
der Anzahl von ausstehenden Anforderungen heraufzusetzen. Diese
Anzahl kann eine Gesamtzahl für
alle Sitzungen oder eine Zahl pro Server-URL-Ablaufliste oder beides sein.
Nach Schritt 266 kehrt die Routine wieder über die
Verzögerungsschleife
zurück
und läuft
erneut durch, bis das Ergebnis des Tests bei Schritt 250 anzeigt,
dass die Herunterladesitzung beendet ist.
-
Es
ist anzuerkennen, dass das in 5 gezeigte
Flussdiagramm nur repräsentativ
für den
Verarbeitungsablauf ist. Der dargestellte genaue Ablauf ist nicht
gedacht, als Einschränkung
betrachtet zu werden. So kann zum Beispiel der Schritt des Erhaltens
einer URL (gezeigt als Schritt 260) ausgeführt werden,
bevor die Verbindungsaktivität
(in Schritt 254) abgefragt wird, usw.
-
Gemäß einem
Merkmal des bevorzugten Ausführungsbeispiels
ist es wünschenswert,
einen „Lastausgleich" der von den „Favoriten"-Websites heruntergeladenen Inhalten
durchzuführen,
so dass der Anwender einen so breiten Bereich von Inhalten, wie
es während
des beschränkten
Herunterladezeitraums möglich
ist, erhält.
-
Somit
beeinträchtigen
langsame oder (auch während
der Stunde außerhalb
der Hauptlastzeit) besetzte Web-Server den Herunterladevorgang nicht. Dies
wird durch Implementieren einer sog. „Fairnessrichtlinie" während des
Herunterladevorgangs erzielt. In dem bevorzugten Ausführungsbeispiel
bedeutet dies, dass jeder Server auf der Favoritenliste eine Gelegenheit
hat, Inhalt an den Client während
der Herunterladesitzung zu liefern. Insbesondere wird für diesen
Zweck eine Richtlinie implementiert, die so ausgelegt ist, dass
ein gerechtes Zwischenspeichern des Inhalts, der von einer oder
mehreren Server-URL-Ablauflisten 235 identifiziert wurde,
erreicht wird. Diese besondere Richtlinie kann so einfach wie eine „Ring"-Richtlinie sein, bei der eine bestimmte URL
von jeder Server-URL-Ablaufliste
entnommen wird (in einer FIFO-Reihenfolge), ungeachtet der Anzahl
der relativen Verweise innerhalb einer bestimmten Ablaufliste. Somit
wird zum Beispiel während
einer ersten Wiederholung des oben beschriebenen Schritts 260 die
erste URL aus der ersten Server-URL-Ablaufliste entnommen. Bei der
nächsten Wiederholung,
wird die erste URL aus der zweiten Server-URL-Ablaufliste entnommen,
usw. Alternativ kann die Richtlinie mit einer bestimmten Server-URL-Ablaufliste
beginnen, aber dann die Anzahl der ausstehenden Anforderungen pro
Server begrenzen, bevor Anforderungen an andere Server verwendet
werden. In diesem Beispiel würde
die Fairnessrichtlinie festlegen, dass „niemals mehr als x ausstehende
Anforderungen pro Server" verwendet werden.
Somit würde
die ersten x URLs (welche die Homepage und x-1 relative Verweise
enthalten würden)
von der ersten Server-URL-Ablaufliste entnommen, bevor die URLs
von einer zweiten Server-URL-Ablaufliste verwendet würden, usw.
Die in der vorliegenden Erfindung beanspruchte Fairnessrichtlinie
basiert auf der Gesamtzahl an Bytes, die von einem bestimmten Server
empfangen wird, ungeachtet der Anzahl von URL-Anforderungen, die von
einer bestimmten Server-URL-Ablaufliste
erzeugt wurden. Auf diese Weise kann die Richtlinie die Gesamtanzahl
an Bytes, die von einem bestimmten Server zwischengespeichert wird,
begrenzt werden. Ein weiterer Ansatz im Hinblick auf Fairness wäre es, die
Verbindungstiefe von Dokumenten, die von einem bestimmten Server
abgerufen werden, zu begrenzen. Eine Verbindungstiefenbegrenzung
würde sicherstellen,
dass eine Seite mit einer großen
Anzahl von verschachtelten oder integrierten Verweisen den Herunterladevorgang
nicht unnötigerweise
so beeinflusst, dass andere Server ausgeschlossen werden. Noch ein
weiterer Ansatz wäre,
bestimmte Arten von Seiten auf der Favoritenliste zu identifizieren
und solche Seiten als letzte zu bedienen, da sie ansonsten zu viel
vom Herunterladezyklus belegen würden.
Somit könnte
zum Beispiel eine Verzeichnisseite (mit Tausenden von Verweisen)
identifiziert werden und an das Ende der Serviceliste gesetzt werden,
um sicherzustellen, dass andere Seiten ihre Chance erhalten, zum
Herunterladevorgang beizutragen.
-
Natürlich werden
die Fachleute anerkennen, dass die obigen Beispiele sich nicht gegenseitig
ausschließen.
Eines oder mehrere dieser Beispiele können kombiniert werden, um
eine noch genauere Abstimmung der genauen Menge an Inhalt, der von
jeder der Favoritenseiten während
der Herunterladesitzung zwischengespeichert wird, zu erhalten. Das
Ergebnis dieses Ansatzes des Lastausgleichs ist, das jeder Server
zumindest eine theoretische und praktische Gelegenheit hat, Inhalt
beizusteuern; der Anwender erhält
somit einen deutlichen Anteil der angeforderten Favoritenseiten,
auch wenn mancher bestimmter Inhalt während der tatsächlichen
Sitzung nicht heruntergeladen werden kann. Dies ist jedoch normalerweise
kein Problem, da der Cachespeicher üblicherweise eine Kopie (wenn
auch möglicherweise
nicht aktuell) des bestimmten Inhalts aufbewahrt, der es während einer
bestimmten Herunterladesitzung nicht in den Cachespeicher geschafft
hat. Somit hat der Betrachter immer noch eine „komplette" Version der Favoritenseite und der
Lastausgleichsvorgang stellt sicher, dass er einen breiteren Umfang
auf der Gesamtliste erhalten wird.
-
Bezugnehmend
auf 6 ist nun ein Flussdiagramm der Prozessreaktionsroutine
gezeigt, die für
jede GET-Anforderung, die dem Netzwerk vom Cachespeicher-Manager
in Schritt 264 der 5 vorgelegt
wird, ausgeführt
wird. Sie beginnt in Schritt 270 durch Heruntersetzen des
Zählers
der Anzahl von ausstehenden Anforderungen, da die bestimmte Anforderung
an das Netzwerk zur Bearbeitung geliefert wurde. In Schritt 272 wird
ein Test durchgeführt, um
zu bestimmen, ob ein Zeitraum für
eine bestimmte Anforderung, ohne dass das Dokument empfangen wurde,
verstrichen ist. Wenn die Reaktion auf den Test in Schritt 272 negativ
ist, wurde das Dokument empfangen und die Routine geht weiter zu Schritt 274,
um die Dokumentverweise zu parsen. Auch wenn dies nicht als Einschränkung zu
verstehen ist, werden während
dieses Schritts doppelte URLs oder Verweise, die bereits besucht
wurden, aus dem Dokument entfernt und somit nicht zur Server-URL-Ablaufliste
zurückgeführt. Zusätzlich werden
nicht lokale Verweise (außer
eventuell Bildern, z. B. .gif oder .jpeg-Dateien) ebenfalls vom Dokument entfernt.
Die Entfernung solcher Verweise stellt sicher, dass eine effizientere
Verarbeitung des Dokuments während
der nächsten
Herunterladesitzung, die das Dokument beinhaltet, erreicht werden
kann. Auch wenn die obige Verarbeitung wünschenswert ist, können andere
Arten intelligenter Verarbeitung an den zurückgeführten Dokumenten angewandt
werden. So kann der Schritt zum Beispiel einen Befehl enthalten,
um einer bestimmten Art von Zeichenfolge zu folgen oder die Verbindungstiefe
des Dokuments begrenzen, oder um eine Byte-Zählerbegrenzung anzuwenden,
usw. Die bestimmte Art der intelligenten Verarbeitung ist in keiner
Weise beschränkt
und jede Technik, die nützlich
sein kann, um den nachfolgenden Herunterladevorgang zu vereinfachen,
kann angewandt werden. Nach Schritt 274 ist die Routine
erledigt.
-
Wenn
das Ergebnis des Tests in Schritt 272 positiv ist, was
anzeigt, dass das Dokument in Reaktion auf die ursprüngliche Anforderung
noch nicht empfangen wurde, geht die Routine weiter zu Schritt 276,
um zu testen, ob ein Wiederholungszähler eine vorbestimmte Anzahl
von Malen abgelaufen ist. Wenn ja, endet die Routine. Wenn nicht,
geht die Routine weiter zu Schritt 278, um die Anforderung
erneut am Beginn ihrer bestimmten Server-URL-Ablaufliste einzureihen und den Wiederholungszähler für diese
bestimmte Anforderung heraufzusetzen. Durch Einordnen der URL-Anforderung am Beginn der
Server-URL-Ablaufliste hat diese eine bessere Chance, schnell erneut
bedient zu werden (abhängig natürlich von
der bestimmten Fairnessrichtlinie, die implementiert wurde). Nach
Schritt 278 endet der Vorgang.
-
Wenn
man sich nun 7 zuwendet, ist ein Blockdiagramm
einer repräsentativen
Webserver-Plattform gezeigt, welche das Herunterladen von Inhalt
zum Web-Client unterstützt.
Diese Plattform ist repräsentativ
für eine
Website. Die Plattform 312 umfasst einen IBM RS/6000 Computer 318 (eine
Workstation mit verringertem Befehlssatz), auf dem das Betriebssystem
AIX 320 (Version 4.1 oder höher) und ein Webserverprogramm 322,
wie z. B. Netscape Enterprise Server Version 2.0, läuft, welches
die Schnittstellenerweiterungen unterstützt. Die Plattform 312 umfasst
außerdem
eine graphische Benutzerschnittstelle (GUI) 324 für die Verwaltung
und Handhabung. Die verschiedenen Modelle der Computer auf RISC-Basis
sind in vielen Veröffentlichungen
der IBM Corporation beschrieben, zum Beispiel RISC System/6000,
7013 und 7016 POWERstation und POWERserver Hardware Technical Reference,
Bestellnummer SA23-2644-00. Das AIX-Betriebssystem wird in AIX Operating
System Technical Reference, veröffentlicht
von IBM Corporation, erste Ausgabe (November 1985), und anderen
Veröffentlichungen beschrieben.
Während
die obige Plattform nützlich ist,
können
andere geeignete Hardware-/Betriebssystem-/Webserver-Kombinationen verwendet werden.
-
Der
Web-Server akzeptiert eine Client-Anforderung und gibt eine Rückantwort.
Die Funktion des Servers 322 wird von einer Anzahl von
Serveranwendungsfunktionen (SAFs) geregelt, von denen jede so ausgelegt
ist, dass sie in einem bestimmten Schritt einer Abfolge ausgeführt werden.
Diese Abfolge, dargestellt in 8, beginnt
mit der Autorisierungsübersetzung
(AuthTrans) 330, während
der der Server jede Autorisierungsinformation, die der Client gesendet
hat, in einen Anwender und eine Gruppe übersetzt. Wenn nötig, kann
der AuthTrans-Schritt eine Mitteilung entschlüsseln, um die tatsächliche
Client-Anforderung zu erhalten. In Schritt 332, genannt Namensübersetzung
(NameTrans), wird die mit der Anforderung verbundene URL intakt
gelassen oder sie kann in einen systemabhängigen Dateinamen, eine Umlenkungs-URL
oder eine spiegelseitige URL übersetzt
werden. In Schritt 334, genannt Pfadüberprüfung (PathCheck), führt der
Server verschiedene Tests an dem sich ergebenden Pfad durch, um
sicherzustellen, dass der vorgegebene Client das Dokument abrufen
darf. In Schritt 336, manchmal als Objekttypen bezeichnet
(ObjectType), werden Informationen (z. B. text/html, Bild/gif, usw.)
vom Typ MIME (Multipurpose Internet Mail Extension) für das vorgegebene
Dokument identifiziert. In Schritt 338, genannt Service
(Service), wählt
die Web-Serverroutine
eine interne Serverfunktion, um das Ergebnis an den Client zurückzusenden.
Diese Funktion kann die normale Serverserviceroutine (um eine Datei
zurückzugeben),
einige andere Serverfunktionen (wie ein Programm, um ein Kundendokument
zurückzusenden)
oder ein CGI-Programm ausführen.
Unser Hauptaugenmerk gilt hier der Situation, wenn die Serverfunktion
ein CGI-Programm ausführt,
das auf dem Web-Server resident ist. In Schritt 340, genannt Protokoll
hinzufügen
(AddLog), werden Informationen über
die Transaktion aufgezeichnet. In Schritt 342, genannt
Fehler (Error), antwortet der Server dem Client, wenn er einen Fehler
entdeckt. Genauere Einzelheiten dieser Funktionen sind im Web Server
Programmer's Guide
von Netscape, Kapitel 5, zu finden.
-
Somit
beinhaltet der Web-Server eine bekannte Reihe von Serveranwendungsfunktionen (SAFs).
Diese Funktionen nehmen die Anforderung des Client und andere Konfigurationsdaten
des Servers als Eingabe und geben eine Antwort an den Server als
Ausgabe zurück.
Nochmals bezugnehmend auf 7 umfasst
der Web-Server außerdem
eine Anwendungsprogrammschnittstelle (API) 326, welche
Erweiterungen bereitstellt, die den Anwendungsentwicklern ermöglichen,
deren Kernfunktionalität (nämlich die
SAFs) durch Softwareprogramme, die allgemein als „Plug-In" bezeichnet werden,
zu erweitern und/oder an die Kundenwünsche anzupassen.
-
In
dem bevorzugten Ausführungsbeispiel umfasst
die Optimierungsroutine einen Satz von Befehlen (Programmcode) in
einem Codemodul, das im Speicher des Prozessors des Datenverarbeitungssystems
resident ist. Alternativ kann die Routine ein Programmcode sein,
der im RAM eines Computers resident ist. Bis er vom Computer benötigt wird,
kann der Befehlssatz in einem anderen Computerspeicher gespeichert
sein, zum Beispiel im Festplattenlaufwerk oder in einem entfernbaren
Speicher, wie eine optische Disk (zur letztendlichen Verwendung
in einem CD-ROM) oder eine Diskette (zur letztendlichen Verwendung
in einem Diskettenlaufwerk), oder kann über das Internet oder ein anderes
Computernetzwerk heruntergeladen werden. Wenn der Code elektronisch
geliefert wird, soll ein Computerprogrammprodukt die Programmdaten
(elektronisch geliefert) umfassen, die im Substrat eines computerlesbaren Speichermediums,
wie Festplatte, Diskette oder andere herkömmliche Speichermedien, gespeichert sind.
Zusätzlich
würde ein
Fachmann auf dem Gebiet erkennen, dass, auch wenn die verschiedenen
beschriebenen Verfahren in geeigneter Weise in einem Mehrzweckcomputer
implementiert sind, der wahlweise durch Software aktiviert oder
neu konfiguriert wird, diese Verfahren auch in der Hardware, der Firmware
oder in stärker
spezialisierten Vorrichtungen ausgeführt werden können, die konstruiert
wurden, um die erforderlichen Verfahrensschritte durchzuführen.
-
Es
ist anzuerkennen, dass der hier beschriebene Client jeder geeignete
Computer oder jede andere Vorrichtung sein kann, der/die direkt
oder indirekt in jeder bekannten oder später entwickelten Weise mit
einem Computernetzwerk, wie dem Internet, Intranet, Extranet usw.
verbunden ist oder verbunden werden kann, und das oben beschriebene
Datenverarbeitungssystem repräsentieren
kann, alleine oder in Kombination mit einem Fernseher oder einem
anderen Gerät.
-
Auch
wenn die Erfindung im Hinblick auf ein bevorzugtes Ausführungsbeispiel
in einer bestimmten Umgebung beschrieben wurde, werden die Fachleute
auf dem Gebiet erkennen, dass viele Modifikationen, Variationen
in Hardware- und Betriebssystemarchitektur usw. möglich sind.
So kann zum Beispiel der hier beschriebene Mechanismus in geeigneter
Weise als Plug-In in ein herkömmliches
Browser-Programm, das auf einem PC läuft, implementiert werden.
Außerdem
können
der bevorzugte Prozessablauf und die Schritte geändert werden. So ist es zum
Beispiel nicht erforderlich, dass der Prozess während einer zeitgebundenen
Herunterlade- oder Zwischenspeichersitzung abläuft. Die Optimierungstechnik
kann in geeigneter Weise bei jedem Internet-Client angewandt werden,
der Inhalt von einer Vielzahl von Servern gemäß einer Fairnessrichtlinie zwischenspeichern
möchte,
wobei jeder der Server eine Gelegenheit hat, zu den heruntergeladenen
Daten beizutragen.