-
Die
vorliegende Erfindung betrifft den Bereich der Datenverarbeitung
und insbesondere ein Verfahren und eine Vorrichtung zur Erzeugung
von vorhergesagten Antworten in einem Datenübertragungs-Netzwerksystem.
-
Viele
Protokolldaten werden über
ein Netzwerk oder zwischen Prozessoren in einem Mehrprozessorsystem übertragen,
das ein Anforderung/Antwort-Interaktionsverfahren einsetzt. In bekannten
Datenübertragungsnetzwerken,
die ein Client-System und ein Server-System beinhalten, wird jede
Anforderung, die das Server-System von dem Client-System empfängt, in
Folge verarbeitet. Jede empfangene Anforderung wird von dem Server-System so verarbeitet,
als ob es jede Anforderung nur einmal gäbe. Folglich ist die Anzahl
der Ressourcen des Serverprozessors, die für die Behandlung von Unterbrechungen,
die Abfrage des Anforderungspakets und die Ermittlung der Serverfunktion
für das
Anforderungspaket benötigt
werden, hoch. Es ist wünschenswert,
ein verbessertes Verfahren und eine verbesserte Vorrichtung zur
wirksamen Verarbeitung von Server-Antworten in einem Datenübertragungsnetzwerk
bereitzustellen, das weniger Ressourcen des Serverprozessors beansprucht
und die erforderliche Antwortzeit je Anforderung so gering wie möglich hält.
-
Verfahren
zur Ablage von Daten im Cachespeicher auf der Grundlage von Vorhersagen
("predictive caching") wurden entwickelt,
um die Leistungsfähigkeit
zu verbessern, so zum Beispiel die in "Intelligent Caching for Remote File
Service", Proceedings
of the International Conference on Distributed Computing Systems,
28. Mai bis 1. Juni 1990, Seiten 220 bis 226 (ISBN: 0-8186-2048*),
und in "Improving
File System Performance via Predictive Caching", Dept. of Computer Science-University
of Kentucky, beschriebenen Verfahren. Die vorgeschlagenen Verfahren
verbessern die Leistungsfähigkeit,
indem sie die in Folge auftretenden Verzögerungen vermeiden, welche
durch Plattenzugriffe zum Lesen der Daten verursacht werden, jedoch
machen sie es nach wie vor erforderlich, dass Netzwerk- und Dateiprotokolle
nacheinander verarbeitet werden.
-
Wichtige
Aufgaben der vorliegenden Erfindung bestehen in der Bereitstellung
eines verbesserten Verfahrens und einer verbesserten Vorrichtung,
mit denen sich Server-Antworten in einem Datenübertragungsnetzwerk wirksam
verarbeiten lassen; der Bereitstellung eines solchen Verfahrens
und einer solchen Vorrichtung, die Ressourcen von Server-Prozessoren
erforderlich machen, welche für
eine kurzzeitige durchschnittliche Belastung und nicht für eine kurzzeitige
Spitzenbelastung gewählt
werden und die erforderliche Antwortzeit je Anforderung so gering
wie möglich
halten; der Bereitstellung eines solchen Verfahrens und einer solchen
Vorrichtung zur Erzeugung von vorhergesagten Antworten in einem
Datenübertragungsnetzwerk;
und der Bereitstellung eines solchen Verfahrens und einer solchen
Vorrichtung, die die Nachteile der Strukturen nach dem Stand der
Technik überwinden.
-
Gemäß den vorstehend
genannten und anderen Aufgaben der Erfindung werden ein Verfahren
und eine Vorrichtung zur Erzeugung von vorhergesagten Antworten
in einem Datenübertragungs-Netzwerksystem bereitgestellt.
-
Erfindungsgemäß kann eine
nächste
Anforderung auf der Grundlage der aktuellen Anforderung vorhergesagt
werden. Der Server in dem Netzwerk sagt die nächste Anforderung des Client
auf der Grundlage der aktuellen Anforderung des Client voraus. Der
Server setzt einen Trigger, der eine Übereinstimmung mit der vorhergesagten
Anforderung des Client erkennt, Wenn die vorhergesagte Anforderung
eines Client ankommt, sendet der Trigger die Antwort. Darüber hinaus
verbindet der Server eine Zeitüberwachungsmaßnahme mit der
vorhergesagten Antwort, so dass die von einem Trigger ausgelöste Antwort
in dem Fall, in dem eine vorhergesagte Anforderung nicht innerhalb
des Zeitüberwachungsintervalls
empfangen wird oder andere Ereignisse eintreten, bevor die vorhergesagte
Anforderung ankommt, gelöscht
und eine alternative Maßnahme durchgeführt wird.
-
Außerdem kann
die von einem Trigger ausgelöste
Antwort mit einer Erfolgsmaßnahme
(success action) verbunden werden; diese Maßnahme wird durchgeführt, wenn
die vorhergesagte Anforderung ankommt. Die Erfolgsmaßnahme kann
eine Folge von vorhergesagten Antworten beinhalten. Ein Vorhersage-Zählstand, der
die Häufigkeit
einer erfolgreichen Vorhersage angibt, kann zur Verfügung gehalten
werden. Tasks mit einem hohen Vorhersage-Zählstand kann eine höhere Priorität vor anderen
Tasks eingeräumt
werden, die weniger erfolgreich vorhergesagt wurden.
-
Gemäß einer
ersten Erscheinungsform der vorliegenden Erfindung wird ein Server-Rechnersystem bereitgestellt,
das einen Prozessor, ein Dateisystem und einen Netzwerkadapter enthält, wobei
das Server-Rechnersystem über
ein Datenübertragungsnetzwerk
mit einem Client-Rechnersystem verbunden werden kann, wobei das
Server-Rechnersystem Folgendes umfasst: ein Empfangsmittel, das
mit dem Datenübertragungsnetzwerk
verbunden ist, um eine eintreffende Anforderung von dem Client-Rechnersystem
zu empfangen; ein Abwicklungsmittel, das mit dem Empfangsmittel
verbunden ist, um eine erste eintreffende Anforderung zu verarbeiten
und um eine erste Antwort zu erstellen, wobei das Abwicklungsmittel
des Weiteren ausführbare
Befehle umfasst, die auf dem Prozessor ausgeführt werden; und dadurch gekennzeichnet
ist, dass es Folgendes umfasst: ein Vorhersagemittel, das mit dem
Abwicklungsmittel verbunden ist, um eine zweite Anforderung von
dem Client-Rechnersystem vorherzusagen und um ein vorhergesagtes
zweites Antwortpaket auf die vorhergesagte zweite Anforderung hin
zu erstellen, wobei die Erstellung den Aufbau von Feldern eines Netzwerkpaketrahmens
beinhaltet, der die vorhergesagte zweite Antwort umfasst, einen
Vergleicher, der mit dem Empfangsmittel und dem Vorhersagemittel
verbunden ist, um eintreffende Anforderungen von dem Datenübertragungsnetzwerk
mit der vorhergesagten zweiten Anforderung zu vergleichen, und ein
Sendemittel, das mit dem Abwicklungsmittel und dem Vergleichsmittel
verbunden ist, um die erste Antwort über das Datenübertragungsnetzwerk
an das Client-Rechnersystem zu senden und um das erstellte vorhergesagte
zweite Antwortpaket über
das Datenübertragungsnetzwerk
an das Client-Rechnersystem zu senden, wenn das Vergleichsmittel
eine Übereinstimmung
zwischen der eintreffenden Anforderung und der vorhergesagten zweiten Anforderung
feststellt.
-
Geeigneterweise
umfasst der Vergleicher darüber
hinaus ein Mittel, das dazu dient, eine Hash-Signatur der eintreffenden
Anforderungen zu erzeugen und sie mit einem Triggersatz zu vergleichen,
der die vorhergesagte zweite Anforderung enthält, und vorzugsweise umfasst
er ferner ein Mittel, das dazu dient, die Hash-Signatur eines vorher
festgelegten Teils der eintreffenden Anforderung zu erzeugen.
-
Vorzugsweise
sind die vorher festgelegten Felder mit der Paketkennung und der
Kopfbereich-Prüfsumme
eines Anforderungspakets nicht in dem vorher festgelegten Teil der
eintreffenden Anforderung eingeschlossen.
-
Geeigneterweise
enthält
der Triggersatz eine Erfolgsmaßnahme;
die Erfolgsmaßnahme
ist durchzuführen,
wenn die Übereinstimmung
festgestellt wird, und vorzugsweise beinhaltet die Erfolgsmaßnahme eine Gruppe
von vorhergesagten Anforderungen und vorhergesagten Antworten.
-
Alternativ
beinhaltet die Erfolgsmaßnahme
einen Vorhersage-Zählwert,
der zur zeitlichen Abfolgeplanung von Tasks verwendet wird, sowie
vorzugsweise ein Mittel, das den Vorhersage-Zählwert als Reaktion auf das
Versenden der vorhergesagten zweiten Antwort erhöht.
-
Vorzugsweise
enthält
der vorstehend beschriebene Triggersatz eine Zeitlimit-Erfolgsmaßnahme (timeout
success action); wobei die Zeitlimit-Erfolgsmaßnahme dazu dient, die vorhergesagte
zweite Antwort und den Triggersatz zu löschen.
-
Gemäß einer
zweiten Erscheinungsform der vorliegenden Erfindung wird ein Verfahren
zur Erzeugung von vorhergesagten Antworten in einem Server-Rechnersystem
bereitgestellt, das einen Prozessor, ein Dateisystem und einen Netzwerkadapter
enthält,
wobei das Server-Rechnersystem über
ein Datenübertragungsnetzwerk
mit einem Client-Rechnersystem verbunden werden kann, wobei das
Verfahren Folgendes umfasst:
Empfangen einer eintreffenden
Anforderung von dem Client-Rechnersystem,
Verarbeiten einer ersten eintreffenden Anforderung und Erstellen
einer ersten Antwort, Senden der ersten Antwort an das Client-Rechnersystem über das
Datenübertragungsnetzwerk;
und dadurch gekennzeichnet ist, dass es Folgendes umfasst: Vorhersagen
einer zweiten Anforderung von dem Client-Rechnersystem und Erstellen
einer vorhergesagten zweiten Antwort auf die vorhergesagte zweite
Anforderung hin, wobei die Erstellung den Aufbau von Feldern eines Netzwerkpaketrahmens
beinhaltet, der die vorhergesagte zweite Antwort umfasst; Vergleichen
einer nächsten eintreffenden
Anforderung von dem Datenübertragungsnetzwerk
mit der vorhergesagten zweiten Anforderung und als Reaktion auf
eine festgestellte Übereinstimmung
zwischen der nächsten
eintreffenden Anforderung und der vorhergesagten zweiten Anforderung
Senden des erstellten vorhergesagten zweiten Antwortpakets an das
Client-Rechnersystem über
das Datenübertragungsnetzwerk.
-
Geeigneterweise
beinhaltet der Schritt des Vergleichens der nächsten eintreffenden Anforderung
von dem Datenübertragungsnetzwerk
mit der vorhergesagten zweiten Anforderung die Schritte des Erzeugens
und des Vergleichs einer Hash-Signatur der eintreffenden Anforderung
mit einem Triggersatz, der die vorhergesagte zweite Anforderung
enthält,
und vorzugsweise beinhaltet der Schritt des Erzeugens der Hash-Signatur
den Schritt des Erzeugens der Hash-Signatur eines vorher festgelegten
Teils der eintreffenden Anforderung; wobei die vorher festgelegten
Felder mit der Paketkennung und der Kopfbereich-Prüfsumme eines
Anforderungspakets nicht in dem vorher festgelegten Teil der eintreffenden
Anforderung eingeschlossen sind.
-
Vorzugsweise
beinhaltet der Schritt des Erstellens der vorhergesagten zweiten
Antwort auf die vorhergesagte zweite Anforderung des Weiteren den
Schritt des Erzeugens eines Triggersatzes, der Vergleichsdaten,
die vorhergesagte zweite Antwort und eine Erfolgsmaßnahme enthält, die
durchzuführen
ist, wenn eine Übereinstimmung
festgestellt wird, und vorzugsweise beinhaltet der Schritt des Erzeugens
des Triggersatzes, der die Erfolgsmaßnahme enthält, den Schritt des Erzeugens
eines Vorhersage-Zählwerts,
der zur zeitlichen Abfolgeplanung von Tasks verwendet wird.
-
Geeigneterweise
beinhaltet der Schritt des Erzeugens des Triggersatzes, der die
Erfolgsmaßnahme enthält, den
Schritt des Erzeugens einer Zeitlimit-Erfolgsmaßnahme, die zum Löschen der
vorhergesagten zweiten Antwort und des Triggersatzes verwendet wird.
-
Geeigneterweise
beinhaltet der Schritt des Erstellens der vorhergesagten zweiten
Antwort auf die vorhergesagte zweite Anforderung den Schritt der
Feststellung eines Verweises auf eine andere Datei in einem aktuellen
Dokument und den Schritt des Erzeugens einer Dateiübertragungsvorhersage
für die
festgestellte, durch einen Verweis gekennzeichnete andere Datei.
-
Geeigneterweise
beinhaltet der Schritt des Erstellens der vorhergesagten zweiten
Antwort auf die vorhergesagte zweite Anforderung den Schritt des
Kennzeichnens von weiteren Dateiblöcken für eine Dateiübertragung;
den Schritt des Lesens der nächsten
Dateiblöcke
und den Schritt des Erstellens von Protokollübertragungsinformationen für die nächsten Dateiblöcke.
-
Die
vorliegende Erfindung lässt
sich anhand der folgenden ausführlichen
Beschreibung der bevorzugten Ausführungsformen der Erfindung,
die in den Zeichnungen veranschaulicht sind, verstehen, bei denen:
-
1 in
Form eines Blockschaltbilds ein bevorzugtes Datenübertragungs-Netzwerksystem
der bevorzugten Ausführungsform
darstellt;
-
2A in
Form einer Übersichtsdarstellung
einen Protokollstapel nach dem Stand der Technik eines Client-Rechnersystems und
eines Server-Rechnersystems in einem herkömmlichen Datenübertragungs-Netzwerksystem
darstellt;
-
2B in
Form einer Übersichtsdarstellung
einen Protokollstapel zusammen mit einer Vorhersagelogik des Datenübertragungs-Netzwerksystems
von 1 der bevorzugten Ausführungsform darstellt;
-
3 die
Zeitbeziehung von Anforderungs- und Antwortpaketen nach dem Stand
der Technik zwischen dem Client-Rechnersystem und dem Server-Rechnersystem
von 2A darstellt;
-
4 ein
beispielhaftes Anforderungspaket zeigt;
-
5 ein
beispielhaftes Antwortpaket zeigt;
-
6A ein
Flussdiagramm ist, das die logischen Schritte veranschaulicht, die
von einem Server-Prozessor zur Erzeugung von vorhergesagten Antworten
des Datenübertragungs-Netzwerksystems von 1 gemäß der bevorzugten
Ausführungsform
durchgeführt
werden;
-
6B eine
Darstellung ist, die einen Triggersatz-Datenblock zeigt, der von
einem Serverprozessor des Datenübertragungs-Netzwerksystems von 1 verwendet
wird, um Vergleichsdaten und einen Triggersatz gemäß der bevorzugten
Ausführungsform
zu erstellen;
-
6C und 6D ausführlichere
Flussdiagramme sind, die die beispielhaften Schritte veranschaulichen,
welche von einem Server-Prozessor zur Erstellung einer vorhergesagten
Antwort durchgeführt
werden;
-
7 ein
Flussdiagramm ist, das die logischen Schritte zeigt, die von einem
Server-Prozessor des Datenübertragungs-Netzwerksystems von 1 zur
Verarbeitung von Anforderungen gemäß der bevorzugten Ausführungsform
durchgeführt
werden;
-
8A ein
Flussdiagramm ist, das die logischen Schritte zeigt, die von einem
Server-Prozessor des Datenübertragungs-Netzwerksystems von 1 zur
zeitlichen Abfolgeplanung von Tasks gemäß der bevorzugten Ausführungsform
durchgeführt
werden;
-
8B ein
Blockschaltbild ist, das einen Task-Steuerblock zeigt, der von einem
Server-Prozessor des Datenübertragungs-Netzwerksystems von 1 gemäß der bevorzugten
Ausführungsform
verwendet wird;
-
8C ein
Flussdiagramm ist, das die logischen Schritte zeigt, die von einem
Server-Prozessor des Datenübertragungs-Netzwerksystems von 1 für eine zugehörige Zeitüberwachungsmaßnahme gemäß der bevorzugten
Ausführungsform
durchgeführt
werden;
-
8D die
Zeitbeziehung von aufeinanderfolgenden Anforderungs- und Antwortpaketen
zwischen dem Client-System und dem Server-System der bevorzugten
Ausführungsform
zeigt; und
-
9 ein
Blockschaltbild ist, das ein Rechnerprogrammprodukt gemäß der bevorzugten
Ausführungsform
zeigt.
-
Nun
Bezug nehmend auf die Zeichnungen ist in 1 ein Blockschaltbild
eines beispielhaften Datenübertragungs-Netzwerksystems dargestellt,
das allgemein mit der Bezugszahl 20 gekennzeichnet ist
und zur Durchführung
des Verfahrens der bevorzugten Ausführungsform verwendet werden
kann. Ein Client-Rechnersystem 100 mit
einem zugehörigen
Netzwerkadapter oder Medienadapter 113 ist über ein
Datenübertragungsnetzwerk 160 mit
einem Server-System 200 verbunden. Das Server-System 200 der
Erfindung enthält
einen zugehörigen
Netzwerkadapter 207, ein Empfangslogik-Modul 217,
ein Sendelogik-Modul 218, einen Prozessor 220 und
ein Vorhersagelogik-Modul 230. Das Vorhersagelogik-Modul 230 enthält eine
Vergleichsfunktion 232, eine Daten- und Triggersatz-Vergleichsfunktion 234,
eine Datensendefunktion 236 und eine Zeitgeberlogikfunktion 238,
um eine Zeitüberwachungsmaßnahme durchzuführen, die
mit einer von einem Trigger ausgelösten Antwort verbunden ist,
Der Prozessor 220 kann mit mehreren Prozessoren realisiert
werden, Es sollte sich von selbst verstehen, dass das Datenübertragungs-Netzwerksystem 20 ein
Mehrprozessorsystem enthält,
wobei das Datenübertragungsnetzwerk 160 von
einem Zwischenübertragungsnetzwerk
zum Datenaustausch zwischen den mehreren Prozessoren dargestellt
wird, die von einem Client/Server-Anforderungs- und Antwort-Interaktionsverfahren
Gebrauch machen. Bei dem Datenübertragungs-Netzwerksystem 20 können das
Client-Rechnersystem 100 und das Server-Rechnersystem 200 mit mehreren
verschiedenen handelsüblichen
Rechnern wie zum Beispiel einen IBM PS/2, der ein Speicherdateisystem
enthält,
realisiert werden, Auch andere Arten eines Rechnersystems, sei es
ein anderer Microcomputer wie zum Beispiel ein Apple Macintosh,
ein Minicomputer wie zum Beispiel ein IBM System/390 oder ein Microcomputer,
der mit einem größeren Rechnersystem
wie zum Beispiel einem IBM AS/400 verbunden ist, können entweder
für das
Client-Rechnersystem 100 oder das Server-Rechnersystem 200 oder
aber für
beide Systeme verwendet werden und fallen unter die Wesensart und
den Umfang dieser Erfindung.
-
Einem
wichtigen Merkmal des Server-Rechnersystems 200 der Erfindung
entsprechend kann eine nächste
Anforderung oftmals auf der Grundlage der aktuellen Anforderung
vorhergesagt werden. Eine vorhergesagte Antwort wird vom Server-Rechnersystem 200 mit
Hilfe des Vorhersagelogik-Moduls 230 erzeugt. Der Server 200 setzt
einen Trigger, der unter Verwendung der Daten- und Triggersatz-Vergleichsfunktion 234 eine Übereinstimmung
mit der vorhergesagten Anforderung des Client feststellt. Wenn die
vorhergesagte Anforderung des Client eintrifft, sendet der Trigger
die Antwort, wobei er die Datensendefunktion 236 verwendet.
Das Vorhersagelogik-Modul 230 kann mit benutzerspezifischer
Steuerlogik oder mit Befehlen, die von einem Prozessor ausgeführt werden,
realisiert werden. Der Prozessor 220 ist zur Durchführung dieser
Erfindung entsprechend programmiert, wie in den Flussdiagrammen
der 6A, 7, 8A und 8C ausführlicher
beschrieben ist. Der Trigger ist ein Datenblock, der mit Bezug auf 6B veranschaulicht
und beschrieben wird.
-
Nun
Bezug nehmend auf die 2A, 2B, 3, 4, 5 und 8D lassen
sich die Merkmale und Vorteile des Verfahrens, des Server-Rechnersystem 200 und
der Vorhersagelogik 230 der Erfindung unter Bezugnahme
auf Systeme nach dem Stand der Technik verstehen. In den Zeichnungen
werden in Bezug auf das veranschaulichte System nach dem Stand der
Technik dieselben Bezugszahlen für
unveränderte
oder genau gleiche Komponenten des Datenübertragungs-Netzwerksystems 20 der
bevorzugten Ausführungsform verwendet. 2A zeigt
Protokollstapel nach dem Stand der Technik eines herkömmlichen
Datenübertragungs-Netzwerksystems.
Auch Bezug nehmend auf 2B sind Protokollstapel des
Client-Rechnersystems 100 und des Server-Rechnersystems 200 zusammen
mit der Vorhersagelogik-Schnittstelle 230A und
den Funktionen 232, 234 und 236 für das Datenübertragungs-Netzwerksystem 20 gemäß der bevorzugten
Ausführungsform
gezeigt. 3 zeigt die Zeitbeziehung eines
Anforderungspakets 400 von 4 und eines
Antwortpakets 500 von 5 zwischen
einem Client-Rechnersystem 100 und einem Server-Rechnersystem
nach dem Stand der Technik. In 4 und 5 sind
ein Anforderungspaket 400 und ein Antwortpaket 500 eines Netzwerkdateisystems
(NFS) gezeigt. Das Protokoll des Netzwerkdateisystems (NFS) ist
in RFC 1094 von Sun Microsystems, Inc. mit dem Titel "NFS: Network File
System Protocol Specification",
März 1989,
beschrieben. 8D zeigt die Zeitbeziehung von
aufeinander folgenden Anforderungs- und Antwortpaketen zwischen dem
Client-Rechnersystem 100 und dem Server-Rechnersystem 200 der
bevorzugten Ausführungsform.
-
Zunächst Bezug
nehmend auf die 2A und 3 enthält das Client-Rechnersystem 100 einen
Betriebssystemsoftware-Protokollstapel,
der ein Client-Anwendungsmodul 101, eine Anwendungsprogrammierschnittstelle
(API) 103 für
das Client-Rechnersystem,
einen Fernprozeduraufruf-(RPC-)Softwarestumpf (remote procedure
call stub) 105, ein Übertragungsssteuerungsprotokoll-(TCP-)Modul 107,
ein Internetprotokoll-(IP-)Modul 109, ein Medienzugriffsprotokoll 111 und
den Medienadapter 113 enthält. Das Server-Rechnersystem nach
dem Stand der Technik enthält
einen Betriebssystemsoftware-Protokollstapel, der den Medienadapter 207,
ein Medienzugriffsprotokoll-Modul 208, ein Internetprotokoll-(IP-)Modul 209,
ein Übertragungssteuerungsprotokoll-(TCP-)Modul 210,
einen Fernprozeduraufruf- Softwarestumpf 211, eine Anwendungsprogrammierschnittstelle
(API) 212 für
das Server-Rechnersystem 212 und
ein Server-Anwendungsmodul 213 enthält.
-
In 3 werden
auf der senkrechten Zeitachse, die aufeinander folgenden Operationen
entspricht, welche unter Verwendung der Module 101, 103, 105, 107, 109, 111 und 113 des
Client-Rechnersystems 100 und der Module 207, 208, 209, 210, 212 und 213 des
Server-Rechnersystems nach dem Stand der Technik durchgeführt werden,
die gleichen Bezugszahlen wie in 2A verwendet.
In 2A und in 3 ist ein
an dem Server-Rechnersystem nach dem Stand der Technik empfangenes
Paket 400 mit der Bezugszahl 206 angegeben, und
ein von dem Server-Rechnersystem nach dem Stand der Technik gesendetes
Antwortpaket 500 ist mit der Bezugszahl 215 angegeben.
Ein am Client-Rechnersystem 100 empfangenes Antwortpaket 500 ist mit
der Bezugszahl 116 angegeben, und ein verarbeitetes Antwortpaket 500 ist
mit der Bezugszahl 117 angegeben.
-
Die
Client-Anwendung 101, die auf dem Client-Rechnersystem 100 läuft, leitet
einen Serveraufruf oder eine Anforderung an das Server-Rechnersystem
ein. Die Client-Anwendung 101 verwendet zu ihrer Ausführung über den
erzeugten RPC-Softwarestumpf 105 die API 103 des
Client-Rechnersystems. Der RPC-Softwarestumpf 105 übergibt
der Server-Prozedur Argumente und stellt diese in RPC-Kopfbereichfelder
des Anforderungspakets 400, wie in 4 gezeigt
ist. Der RPC-Softwarestumpf 105 ruft dann das Übertragungssteuerungsprotokoll-(TCP-)Modul 107 auf.
Das Übertragungssteuerungsprotokoll
kann ein beliebiges Host-zu-Host-Protokoll
sein, das mit dem Internetprotokoll verwendet wird, und die Bezeichnung "TCP" wird gleichbedeutend
mit einem Benutzerdatagrammprotokoll (UDP) gebraucht. Das UDP-Sendemodul 107 erstellt ein
UDP-Transportkopfbereichfeld und ein Prüfsummenfeld eines Anforderungspakets 400.
Das UDP 107 ruft dann das IP-Modul 109 auf, das
IP-Netzwerkweiterleitungsinformationsfelder
eines Anforderungspakets 400 erstellt. Das IP-Modul 109 ermittelt
die Art des Netzwerks und ruft das Medienzugriffsprotokoll(MAC-)Modul 111 auf.
Das Medienzugriffsprotokoll-Modul 111 erstellt die MAC-Kopfbereichfelder
des Anforderungspakets 400 und einen Steuerblock für den Medienadapter 113.
Anschließend
stellt das Medienzugriffsprotokoll-Modul 111 das Anforderungspaket 400 in
die Warteschlange des Medienadapters 113 zur Übertragung über das
Datenübertragungsnetzwerk 160.
-
Um
die Beschreibung klarer zu gestalten, wird die Protokollverarbeitung
als eine in Module aufgeteilte Protokollverarbeitung beschrieben,
wobei jedes Modul einem bestimmten Protokollmodul entspricht. Der Fachmann
erkennt, dass der Protokollstapel mit einer größeren Anzahl von Modulen, mit
einer kleineren Anzahl von Modulen, mit verschachteltem Code oder
mit Makroschnittstellen realisiert werden kann und dennoch unter
den Umfang der Erfindung fällt.
Es sollte sich von selbst verstehen, dass die vorliegende Erfindung
nicht auf die beschriebenen Protokolle beschränkt ist, sondern dass auch
andere Protokolle wie zum Beispiel das Advanced-Peer-to-Peer-(APPN-)Netzwerkprotokoll
von IBM oder IPX von Novell verwendet werden können.
-
Das
Anforderungspaket 400 durchläuft das Datenübertragungsnetzwerk 160,
kommt am Server-Rechnersystem 200 an und wird vom Medienadapter 207 empfangen.
Der Medienadapter 207 unterbricht einen Serversystem-Prozessor
und macht ihn auf diese Weise auf die Ankunft des Anforderungspakets 400 aufmerksam.
Die Unterbrechungsbehandlungsroutine, die das Medienzugriffsprotokoll-Modul 208 verwendet, teilt
der Server-Abfolgesteuerung
(server scheduler) mit, dass sie die Ausführung der Datenübertragungs-Task vorbereiten
soll, die die empfangenen Anforderungspakete 400 verarbeitet.
Wenn die Datenübertragungs-Task ausgeführt wird,
verarbeitet sie den MAC-Kopfbereich, stellt fest, dass das Anforderungspaket 400 ein
Internetprotokoll-Rahmen ist, und ruft das IP-Modul 209 auf.
Das IP-Modul 209 stellt fest, dass das Paket ein UDP- Paket 400 ist
und ruft das UDP-Modul 210 auf. Das UDP-Modul 210 verwendet
den Verbindungssteuerungsblock für
dieses Paket 400, legt die Anwendungs-Task 213 fest,
die das empfangene Paket verarbeiten soll, und legt den Zeitpunkt
der Ausführung
der Anwendungs-Task fest. Wenn mit der Ausführung der Anwendungs-Task 213 begonnen
wird, kehrt der RPC-Softwarestumpf 211 von
dem letzten Netzwerkleseaufruf zurück, den er ausgeführt hat,
bevor er auf Daten wartend in den Ruhemodus überging, und liest das Anforderungsdatenpaket 400.
Der RPC-Softwarestumpf 211 decodiert das Argument oder
kopiert es aus dem RPC-Paket, stellt die gewünschte Server-Operation fest,
führt die
Server-Operation durch und ruft die API 212 des Server-Rechnersystems
auf, um die Antwort auf die Anforderung zurückzuschicken.
-
Wenn
mit der Ausführung
der Anwendungs-Task begonnen wird, liest der RPC-Softwarestumpf 211 das
Anforderungspaket 400 und übergibt es unter Verwendung
der API 212 des Server-Rechnersystems
an die Server-Anwendung 213. Die Server-Anwendung 213 führt die
von dem Client-Rechnersystem 100 angeforderte Server-Operation
durch und erstellt die Daten- und
NFS-Felder in dem Antwortpaket 500, wie in 5 gezeigt
ist. Der gesamte Protokollstapel wird rückwärts durchlaufen, und das Antwortpaket 500 wird
erstellt, im Netzwerk 160 übertragen, vom Client-Rechnersystem 100 empfangen,
durch dessen Protokollstapel verarbeitet, und die Antwort wird an
die Client-Anwendung 101 zurückgeschickt.
-
Nun
Bezug nehmend auf 2B und 8D enthält das Server-Rechnersystem 200 der
bevorzugten Ausführungsform
einen Betriebssystemsoftware-Protokollstapel, der den Medienadapter 207,
das Medienzugriffsprotokoll 208, das Internetprotokoll- (IP-)Modul 209,
das Übertragungssteuerungsprotokoll-(TCP-)Modul 210,
den Fernprozeduraufruf-Softwarestumpf 211, die API 212 des
Server-Rechnersystems und das Server-Anwendungsmodul 213 enthält. Das
Server-Rechnersystem 200 enthält darüber hinaus die Vergleichsfunktion 232,
die Daten- und Triggersatz-Vergleichsfunktion 234,
die Datensendefunktion 236 zur Übertragung von Daten zwischen
dem Internetprotokoll-Modul 209 und dem Medienzugriffsprotokoll-Modul 208 und
eine Vorhersagelogik-Schnittstelle 230A, wie in 2B gezeigt
ist. Die Vorhersagelogik-Schnittstelle 230A greift auf
das IP-Protokollmodul 209,
das TCP-Modul 210, den RPC-Softwarestumpf 211,
die API 212 des Server-Rechnersystems und das Server-Anwendungsmodul 213 zu
und erzeugt eine oder mehrere neue Vorhersagen, die auf der Grundlage
der aktuellen Anforderung des Client in einer Zeile mit der Bezeichnung "NEUE VORHERSAGEN" (NEW PREDICTIONS)
angegeben werden. Die Daten- und
Triggersatz-Vergleichsfunktion 234 setzt einen Trigger,
der unter Verwendung der Datenvergleichsfunktion 232, die
mit dem Medienzugriffsprotokoll-Modul 208 verbunden ist,
eine Übereinstimmung
mit der vorhergesagten Anforderung des Client feststellt. Wenn die
vorhergesagte Anforderung eines Client eintrifft, sendet der Trigger
die vorhergesagte Antwort, wobei er die Datensendefunktion 236 verwendet.
Die Daten- und Triggersatz-Vergleichsfunktion 234 und die
Vorhersagelogik-Schnittstelle 230A erzeugen
eine Erfolgsmaßnahme
und eine Zeitüberwachungsmaßnahme zusammen
mit den vorhergesagten Antworten, die in einer Zeile mit der Bezeichnung
ERFOLG, ZEITLIMIT (SUCCESS, TIMEOUT) angegeben werden. Die Zeitüberwachungsmaßnahme ist
vorgesehen, damit die von einem Trigger ausgelöste Antwort in dem Fall, in
dem eine vorhergesagte Anforderung nicht innerhalb des Zeitüberwachungsintervalls
empfangen wird oder andere Ereignisse stattfinden, bevor eine vorhergesagte Anforderung
eintrifft, gelöscht
und eine alternative Maßnahme
durchgeführt
wird. Die Erfolgsmaßnahme
legt die Maßnahme
fest, die durchzuführen
ist, wenn die vorhergesagte Anforderung ankommt, und kann eine Folge
von vorhergesagten Antworten enthalten.
-
Wie
in 8D gezeigt ist, wird beim Empfang einer ersten
Anforderung durch das Server-Rechnersystem 200 eine nächste Anforderung
vorhergesagt, und eine Antwort auf die vorhergesagte Anforderung
wird erstellt, wenn die Antwort auf die erste Anforderung an das
Client-Rechnersystem 100 gesendet wird. Wenn das Server-Rechnersystem 200 eine Übereinstimmung
mit der nächsten
Anforderung feststellt, wird die vorhergesagte Antwort unverzüglich an
das Client-Rechnersystem 100 gesendet, eine nächste Anforderung
wird vorhergesagt, und eine Antwort auf die vorhergesagte Anforderung
wird erstellt. Das dargestellte Zeitüberwachungsintervall, in dem
vom Server-Rechnersystem 200 keine Übereinstimmung
festgestellt wird, ist vorgesehen, um die vorhergesagte Antwort
zu löschen,
und eine alternative Maßnahme
wird durchgeführt.
-
6A stellt
die logischen Schritte zur Erzeugung von vorhergesagten Antworten
dar, die die Daten- und Triggersatz-Vergleichsfunktion 234 von 1 und 2B beinhalten,
die von dem Server-Prozessor 220 der bevorzugten Ausführungsform
durchgeführt
werden. Wie am Block 600 angegeben ist, wird eine eintreffende
Anforderung oder eine Benachrichtigung über eine erfolgreiche Vorhersage
empfangen. Das neue Anforderungspaket wird verarbeitet, wie am Block 602 angegeben
ist. Als Nächstes
wird festgestellt, ob es möglich
ist, eine neue Anforderung vorherzusagen, wie am Entscheidungsblock 604 angegeben
ist. Die Operation am Entscheidungsblock 604 ist protokollspezifisch
und wird bei mehreren Leseoperationen von dem Dateisystem, der API 212 des
Serversystems und der Server-Anwendung 213 erlernt.
Wenn eine nächste
Anforderung vorhergesagt werden kann, wird eine vorhergesagte Antwort
erstellt, wie am Block 606 angegeben ist und mit Bezug
auf die 6C und 6D ausführlicher
veranschaulicht und beschrieben wird. Am Block 606 kann auch
eine Gruppe von vorhergesagten Antworten erstellt werden. Anschließend wird
eine Trigger-Antwort, wie sie mit Bezug auf 6B gezeigt
und beschrieben wird, erstellt, wie am Block 608 angegeben
ist. Ein mit dem Trigger oder einer vorhergesagten Antwort verbundenes
Zeitlimit (Timeout) wird gesetzt, wie am Block 610 angegeben
ist. Die Verarbeitung der aktuellen Anforderung wird dann abgeschlossen,
wie am Block 612 angegeben ist.
-
Andernfalls,
wenn keine nächste
Anforderung vorhergesagt werden kann, zum Beispiel, wenn die aktuelle
Anforderung darin besteht, die hergestellte Verbindung zu schließen, wird
die Verarbeitung der aktuellen Anforderung am Block 612 beendet.
-
6B zeigt
einen Triggersatz-Datenblock 240, der für jede von einem Trigger ausgelöste Antwort, die
erstellt worden ist, verwaltet wird. Der Triggersatz-Datenblock 240 enthält mindestens
Vergleichsdaten 246, bei denen es sich um Daten handelt,
die mit den empfangenen Anforderungen zu vergleichen sind. Die Vergleichsdaten 246 enthalten
drei Teile, darunter eine Bytefolge 248 des ganzen Anforderungspakets,
das den Vergleich auslösen
soll; eine Bitfolge 250, wobei 1 Bit jedem Byte entspricht
und angibt, ob dieses Byte einem Vergleich unterzogen werden muss;
und ein Ergebnis 252 einer Hash-Funktion von den Teilen des ganzen Anforderungspakets,
wobei für
diejenigen Bytes, die keinem Vergleich unterzogen werden müssen, Null-Eingangssignale
verwendet werden. Der Triggersatz-Datenblock 240 enthält mindestens
eine Antwort 254, die beim Auftreten einer Übereinstimmung
zu senden ist, und eine Maßnahme 256,
die beim Auftreten einer Übereinstimmung
zu ergreifen ist.
-
Es
ist nicht erforderlich, dass die Bitfolge 256 und das Ergebnis 252 der
Hash-Funktion das ganze Eingangsdatenstrompaket 400 abdecken.
Mit Bezug auf das Anforderungspaket 400 in 4 gehören zu den
vier Feldern in der Anforderung 400, die sehr schwierig
vorherzusagen sind und nur eine ganz geringe Auswirkung auf die
Antwort 500 haben, das IP-Kopfbereichfeld "Paketkennung = X", das IP-Kopfbereichfeld "Prüfsumme", das UDP-Kopfbereichfeld "Prüfsumme" und das RPC-Kopfbereichfeld "Nachrichtenkennung
= G". Diese Felder
sind in 4 mit einem Stern gekennzeichnet
und werden bei der bevorzugten Ausführungsform nicht zur Prüfung der Übereinstimmung
herangezogen.
-
Nun
Bezug nehmend auf die 6C und 6D sind
darin beispielhafte Schritte gezeigt, die von dem Server-Prozessor 220 am
Block 606 durchgeführt
werden, um eine vorhergesagte Antwort zu erstellen. In 6C wird
die Art der aktuellen Anwendung wie zum Beispiel eine Dateiübertragung
festgestellt, wie am Entscheidungsblock 620 angegeben ist.
Wenn am Block 620 eine Dateiübertragung festgestellt wird,
wird die Erstellung der vorhergesagten Antwort mit der Prüfung, ob
es weitere zu übertragende
Blöcke
gibt, fortgesetzt, wie am Entscheidungsblock 622 angegeben
ist. Wenn am Block 622 keine weiteren Blöcke festgestellt
werden, sind die Operationen abgeschlossen, wie am Block 624 angegeben
ist. Wenn andernfalls am Block 622 weitere Blöcke festgestellt
werden, werden die nächsten
Dateiblöcke
gelesen, wie am Block 626 angegeben ist. Als Nächstes werden
Protokollübertragungsinformationen
für die
nächsten
Dateiblöcke
erstellt, wie am Block 628 angegeben ist, um die vorhergesagte
Antwort fertig zu stellen. Wenn am Block 620 eine Webserver-Anwendung
festgestellt wird, werden die nachfolgenden Schritte im Anschluss
an den Einstiegspunkt D in 6D fortgesetzt.
-
Bezug
nehmend auf 6D beginnen die nachfolgenden
Schritte zur Erstellung einer vorhergesagten Antwort wie zum Beispiel
bei eingebetteten Hypertext-Dateien mit dem Erstellen einer Dateiübertragungsvorhersage
für ein
aktuelles Dokument, wie am Block 630 angegeben ist. Eine
Prüfung
auf das Vorhandensein von Verweisen auf andere Dateien in dem aktuellen
Dokument ist vorgesehen, wie am Entscheidungsblock 632 angegeben
ist. Wenn am Block 632 kein Verweis auf eine andere Datei
festgestellt wird, sind die Operationen abgeschlossen, wie am Block 634 angegeben
ist. Wenn andernfalls am Block 632 ein oder mehrere Verweise
auf andere Dateien festgestellt werden, werden die Dateiübertragungsvorhersagen
für die
festgestellten eingebetteten Dateien erstellt, wie am Block 636 angegeben
ist, um die vorhergesagten Antworten fertig zu stellen.
-
7 zeigt
die logischen Schritte, die vom Server-Prozessor 220 zur
Verarbeitung von eintreffenden Anforderungen gemäß der bevorzugten Ausführungsform
durchgeführt
werden. Die aufeinander folgenden Operationen beginnen, wenn ein
eintreffendes Anforderungspaket ankommt, wie am Block 700 angegeben
ist. Eine Hash-Signatur des eintreffenden Pakets wird erstellt,
wie am Block 702 angegeben ist. Die erstellte Hash-Signatur
wird mit einer Gruppe von Hash-Signaturen in dem Triggersatz verglichen,
wie am Block 704 angegeben ist. Wenn eine Übereinstimmung
bestätigt
wird, wie am Block 706 angegeben ist, wird das vorhergesagte
Antwortpaket gesendet, wie am Block 708 angegeben ist.
Dann wird eine Trigger-Rückrufroutine durchgeführt, um
einen neuen Triggersatz zu erzeugen, wie am Block 710 angegeben
ist. Ein Task-Prioritätszählstand
wird erhöht,
wie am Block 712 angegeben ist, um die Routine zu beenden,
wie am Block 714 angegeben ist. Der Task-Prioritätszählstand
wird verfügbar
gehalten, damit bei der zeitlichen Abfolgeplanung von Tasks durch
den Server-Prozessor 220 den Tasks mit einem höheren Prioritätszählstand
der Vorrang vor anderen Tasks mit niedrigeren Prioritätszählständen eingeräumt werden
kann. Wenn andernfalls am Entscheidungsblock 704 keine Übereinstimmung
der Hash-Signaturen festgestellt wird, wird das eintreffende Anforderungspaket
zur Verarbeitung weitergegeben, wie am Block 718 angegeben
ist.
-
Bezug
nehmend auf die 8A und 8B sind
die logischen Schritte gezeigt, die von einem Server-Prozessor 220 zur
zeitlichen Abfolgeplanung von Tasks durchgeführt werden, 8B zeigt
einen Task-Steuerblock 808, der die Task-Daten 810 und
die Task-Priorität 812 enthält, die
vom Server-Prozessor 220 verwendet werden. Die Routine
zur Abfolgeplanung der Tasks beginnt, wenn der Server-Prozessor 220 eine
nächste
Task-Entscheidung
feststellt, wie am Block 800 angegeben ist. Der Server-Prozessor 220 wählt die
Task mit der höchsten
Priorität
aus, wie am Block 802 angegeben ist. Der Server-Prozessor 220 teilt
der ausgewählten
Task Ausführungszeit
zu, wie am Block 804 angegeben ist. Der Server-Prozessor 220 führt die Task
aus, wie am Block 806 angegeben ist.
-
Bezug
nehmend auf 8C wird ein von der Zeitgeberlogik 238 erzeugtes
Zeitlimit festgestellt, wie am Block 820 angegeben ist.
Die Priorität
der Task wird dann gelöscht,
wie am Block 822 angegeben ist, und ein Rückruf nach
dem Ablauf des Zeitlimits (timeout callback) wird durchgeführt, wie
am Block 824 angegeben ist. Wie am Block 826 angegeben
ist, sind damit die Operationen des Server-Prozessors 220 für eine Zeitüberwachungsmaßnahme in
Verbindung mit einer von einem Trigger ausgelösten Antwort abgeschlossen.
-
Ein
beispielhafter Algorithmus folgt, der in der bevorzugten Ausführungsform
verwendet werden kann, um TCP- und IP-Prüfsummen
zu verarbeiten und um sicherzustellen, dass die richtigen Antwortpakete
erstellt werden. Es sollte sich von selbst verstehen, dass das erfindungsgemäße Verfahren
sowohl in Software als auch auf einer Vorrichtung zur Durchführung dieser
Operation realisiert werden kann, d.h. die Drei-Bit-Folgen, ein Vergleich,
eine IP-Prüfsumme,
eine TCP-Prüfsumme,
ein Ergebnis der Prüfsumme
(das die Verbindung ausweist) und ein Satz von Befehlen, um die
Antwort zu erstellen, indem die Nachrichtenkennung in die Antwort
aufgenommen und die Prüfsumme
aktualisiert werden.
-
Mit
Hilfe einer Anwendungsprogrammierschnittstelle (API) kann die Schnittstelle
verallgemeinert werden. In der bevorzugten Ausführungsform ist die API:
set_trigger
(socket, trigger_data).
-
Die
bereitgestellten Triggerdaten stellen eine Struktur dar, die folgende
Form hat:
-
Nun
Bezug nehmend auf 9 ist ein Herstellungsgegenstand
eines Rechnerprogrammprodukts 900 der Erfindung gezeigt.
Zu einem Rechnerprogrammprodukt 900 gehören ein Aufzeichnungsmedium 902 wie zum
Beispiel eine Diskette, ein Nurlesespeicher hoher Kapazität in Form
von einer optisch lesbaren CD oder einem CD-ROM, ein Band, ein Übertragungsmedium
wie zum Beispiel eine digitale oder eine analoge Datenübertragungsleitung
oder ein ähnliches
Rechnerprogrammprodukt. Das Aufzeichnungsmedium 802 speichert Programmmittel 904, 906, 908, 910 auf
dem Datenträger 902,
um die Verfahren dieser Erfindung in dem Serversystem 200 von 1 durchzuführen.
-
Eine
Folge von Programmbefehlen oder eine logische Anordnung von einem
oder mehreren zusammenhängenden
Modulen, die vom den aufgezeichneten Programmmitteln 904, 906, 908, 910 festgelegt
werden, weisen das Server-Rechnersystem 200 an, die Erzeugung
von vorhergesagten Antworten der Erfindung vorzunehmen.
-
Zwar
wurde die vorliegende Erfindung mit Bezug auf die Einzelheiten der
in den Zeichnungen dargestellten Ausführungsformen der Erfindung
beschrieben, doch sind diese Einzelheiten nicht als Einschränkung des
Umfangs der Erfindung, die in den beigefügten Ansprüchen beansprucht ist, zu verstehen.