DE69735866T2 - Vorrichtung und Verfahren zur Erzeugung von voraussagbaren Antworten - Google Patents

Vorrichtung und Verfahren zur Erzeugung von voraussagbaren Antworten Download PDF

Info

Publication number
DE69735866T2
DE69735866T2 DE69735866T DE69735866T DE69735866T2 DE 69735866 T2 DE69735866 T2 DE 69735866T2 DE 69735866 T DE69735866 T DE 69735866T DE 69735866 T DE69735866 T DE 69735866T DE 69735866 T2 DE69735866 T2 DE 69735866T2
Authority
DE
Germany
Prior art keywords
predicted
computer system
request
response
generating
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69735866T
Other languages
English (en)
Other versions
DE69735866D1 (de
Inventor
Kenneth Dale N.E. Rochester Aaker
Gary Scott N.E. Rochester Delp
Brad Louis N.W. Rochester Brech
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of DE69735866D1 publication Critical patent/DE69735866D1/de
Publication of DE69735866T2 publication Critical patent/DE69735866T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

  • 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:
    Figure 00240001
    Figure 00250001
  • 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.

Claims (17)

  1. Server-Rechnersystem (200), das einen Prozessor (220), ein Dateisystem und einen Netzwerkadapter (207) enthält, wobei das Server-Rechnersystem über ein Datenübertragungsnetzwerk mit einem Client-Rechnersystem (100) verbunden werden kann, wobei das Server-Rechnersystem Folgendes umfasst: ein Empfangsmittel (217), 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 (230), 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 (232), 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 (218), 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.
  2. Server-Rechnersystem nach Anspruch 1, wobei das Vergleichsmittel (232) des Weiteren ein Mittel umfasst, das dazu dient, eine Hash-Signatur der eintreffenden Anforderungen zu erzeugen und mit Daten in einem Triggerdatensatz zu vergleichen, der die vorhergesagte zweite Anforderung enthält.
  3. Server-Rechnersystem nach Anspruch 2, wobei das Vergleichsmittel (232) des Weiteren ein Mittel umfasst, das dazu dient, die Hash-Signatur eines vorher festgelegten Teils der eintreffenden Anforderung zu erzeugen.
  4. Server-Rechnersystem nach Anspruch 3, wobei vorher festgelegte Felder mit der Paketkennung und der Kopfbereich-Prüfsumme eines Anforderungspakets nicht in dem vorher festgelegten Teil der eintreffenden Anforderung eingeschlossen sind.
  5. Server-Rechnersystem nach Anspruch 2, 3 oder 4, wobei der Triggerdatensatz so ausgelegt ist, dass er eine Erfolgsmaßnahme angibt, die durchzuführen ist, wenn die Übereinstimmung festgestellt wird.
  6. Server-Rechnersystem nach Anspruch 5, wobei die Erfolgsmaßnahme das Versenden einer Folge von vorhergesagten Antworten beinhaltet.
  7. Server-Rechnersystem nach Anspruch 5 oder 6, wobei die Erfolgsmaßnahme die Erzeugung eines Vorhersage-Zählwerts beinhaltet, der zur zeitlichen Abfolgeplanung von Tasks verwendet wird.
  8. Server-Rechnersystem nach Anspruch 7, das ein Mittel umfasst, um den Vorhersage-Zählwert als Reaktion auf das Versenden des vorhergesagten zweiten Antwortpakets zu erhöhen.
  9. Server-Rechnersystem nach Anspruch 2 bis 8, wobei der Triggerdatensatz eine Zeitablauf-Erfolgsmaßnahme enthält; wobei die Zeitablauf-Erfolgsmaßnahme zum Löschen des vorhergesagten zweiten Antwortpakets und des Triggerdatensatzes dient.
  10. Verfahren zur Erzeugung von vorhergesagten Antworten in einem Server-Rechnersystem, 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.
  11. Verfahren nach Anspruch 10, wobei der Schritt des Vergleichens des Weiteren die Erzeugung und den Vergleich einer Hash-Signatur der eintreffenden Anforderung mit Daten in einem Triggerdatensatz umfasst, der die vorhergesagte zweite Anforderung enthält.
  12. Verfahren zur Erzeugung von vorhergesagten Antworten in einem Server-Rechnersystem nach Anspruch 11, wobei der Schritt des Erzeugens der Hash-Signatur den Schritt des Erzeugens der Hash-Signatur eines vorher festgelegten Teils der eintreffenden Anforderung beinhaltet; wobei vorher festgelegte Felder mit der Paketkennung und der Kopfbereich-Prüfsumme eines Anforderungspakets nicht in dem vorher festgelegten Teil der eintreffenden Anforderung eingeschlossen sind.
  13. Verfahren zur Erzeugung von vorhergesagten Antworten in einem Server-Rechnersystem nach Anspruch 10, 11 oder 12, wobei der Schritt des Erstellens des vorhergesagten zweiten Antwortpakets des Weiteren den Schritt des Erzeugens eines Triggerdatensatzes beinhaltet, der Vergleichsdaten, das vorhergesagte zweite Antwortpaket und Daten enthält, die eine Erfolgsmaßnahme angeben, welche durchzuführen ist, wenn eine Übereinstimmung festgestellt wird.
  14. Verfahren zur Erzeugung von vorhergesagten Antworten in einem Server-Rechnersystem nach Anspruch 13, wobei der Schritt des Erzeugens des Triggerdatensatzes den Schritt des Erzeugens eines Vorhersage-Zählwerts beinhaltet, der zur zeitlichen Abfolgeplanung von Tasks verwendet wird.
  15. Verfahren zur Erzeugung von vorhergesagten Antworten in einem Server-Rechnersystem nach Anspruch 13 oder 14, wobei der Schritt des Erzeugens des Triggerdatensatzes den Schritt des Erzeugens einer Zeitablauf-Erfolgsmaßnahme beinhaltet, die zum Löschen des vorhergesagten zweiten Antwortpakets und des Triggerdatensatzes verwendet wird.
  16. Verfahren zur Erzeugung von vorhergesagten Antworten in einem Server-Rechnersystem nach einem der Ansprüche 10 bis 15, wobei der Schritt des Erstellens des vorhergesagten zweiten Antwortpakets 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 beinhaltet.
  17. Verfahren zur Erzeugung von vorhergesagten Antworten in einem Server-Rechnersystem nach einem der Ansprüche 10 bis 16, wobei der Schritt des Erstellens des vorhergesagten zweiten Antwortpakets den Schritt der Feststellung 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 beinhaltet.
DE69735866T 1996-06-14 1997-03-19 Vorrichtung und Verfahren zur Erzeugung von voraussagbaren Antworten Expired - Lifetime DE69735866T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/664,131 US5758087A (en) 1996-06-14 1996-06-14 Apparatus and method for predicted response generation
US664131 2000-09-18

Publications (2)

Publication Number Publication Date
DE69735866D1 DE69735866D1 (de) 2006-06-22
DE69735866T2 true DE69735866T2 (de) 2007-01-25

Family

ID=24664674

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69735866T Expired - Lifetime DE69735866T2 (de) 1996-06-14 1997-03-19 Vorrichtung und Verfahren zur Erzeugung von voraussagbaren Antworten

Country Status (4)

Country Link
US (1) US5758087A (de)
EP (1) EP0813326B1 (de)
JP (1) JP3480794B2 (de)
DE (1) DE69735866T2 (de)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3560423B2 (ja) * 1996-09-17 2004-09-02 松下電器産業株式会社 パケット送受信装置及びパケット受信装置
US5946498A (en) * 1996-11-12 1999-08-31 International Business Machines Corporation Delivery of client remote procedure calls to a server via a request queue utilizing priority and time-out
US5930252A (en) * 1996-12-11 1999-07-27 International Business Machines Corporation Method and apparatus for queuing and triggering data flow streams for ATM networks
US6273622B1 (en) * 1997-04-15 2001-08-14 Flash Networks, Ltd. Data communication protocol for maximizing the performance of IP communication links
US5878223A (en) * 1997-05-07 1999-03-02 International Business Machines Corporation System and method for predictive caching of information pages
US5974049A (en) * 1997-08-29 1999-10-26 International Business Machines Corporation Internet protocol assists for high performance LAN connections
GB2331814B (en) * 1997-11-19 2002-11-13 Ibm Pre-emptive download of software in data processing network
US5963947A (en) * 1998-01-27 1999-10-05 International Business Machines Corporation Technique of dynamically adding functionality from a client to manipulated data at a server
EP1923830A3 (de) * 1999-05-19 2008-08-27 Digimarc Corporation Verfahren und System zur Steuerung von Computern oder zur Verknüpfung mit Internetressourcen aus physischen und elektronischen Elementen
US6961777B1 (en) * 1999-08-06 2005-11-01 Shrikumar Hariharasubrahmanian Systems and methods for predicting fields in a data packet
US7006963B1 (en) 2000-03-02 2006-02-28 International Business Machines Corporation Intelligent workstation simulation-simulation at protocol stack level 2
US7215887B2 (en) * 2000-08-15 2007-05-08 Lockheed Martin Corporation Method and apparatus for infrared data communication
US7386238B2 (en) * 2000-08-15 2008-06-10 Lockheed Martin Corporation Method and system for infrared data communications
US6766376B2 (en) 2000-09-12 2004-07-20 Sn Acquisition, L.L.C Streaming media buffering system
US7165107B2 (en) * 2001-01-22 2007-01-16 Sun Microsystems, Inc. System and method for dynamic, transparent migration of services
US7197565B2 (en) * 2001-01-22 2007-03-27 Sun Microsystems, Inc. System and method of using a pipe advertisement for a peer-to-peer network entity in peer-to-peer presence detection
AU2002234258A1 (en) * 2001-01-22 2002-07-30 Sun Microsystems, Inc. Peer-to-peer network computing platform
US20020133398A1 (en) * 2001-01-31 2002-09-19 Microsoft Corporation System and method for delivering media
US7272636B2 (en) * 2001-04-24 2007-09-18 Sun Microsystems, Inc. Peer group name server
US7114001B2 (en) * 2001-05-11 2006-09-26 International Business Machines Corporation Predictive networking
US7620955B1 (en) * 2001-06-08 2009-11-17 Vmware, Inc. High-performance virtual machine networking
US7849140B2 (en) 2002-08-29 2010-12-07 Oracle America, Inc. Peer-to-peer email messaging
US7263560B2 (en) * 2002-08-30 2007-08-28 Sun Microsystems, Inc. Decentralized peer-to-peer advertisement
US7120666B2 (en) 2002-10-30 2006-10-10 Riverbed Technology, Inc. Transaction accelerator for client-server communication systems
US8069225B2 (en) 2003-04-14 2011-11-29 Riverbed Technology, Inc. Transparent client-server transaction accelerator
US8364815B2 (en) 2005-03-18 2013-01-29 Riverbed Technology, Inc. Reliability and availability of distributed servers
US8176186B2 (en) 2002-10-30 2012-05-08 Riverbed Technology, Inc. Transaction accelerator for client-server communications systems
EP1515233A3 (de) * 2003-08-06 2007-03-14 Matsushita Electric Industrial Co., Ltd. Verfahren, Server und Client zur Reduktion der Verarbeitungszeit der synchronen Kommunikation in einem verteilten Client-Server-System
US7949960B2 (en) * 2003-09-30 2011-05-24 Sap Ag Predictive rendering of user interfaces
US9058388B2 (en) 2004-06-22 2015-06-16 Digimarc Corporation Internet and database searching with handheld devices
US20060122976A1 (en) 2004-12-03 2006-06-08 Shumeet Baluja Predictive information retrieval
JP2006251892A (ja) * 2005-03-08 2006-09-21 Iij Technology:Kk ウェブ・コンテンツ更新履歴管理システム及び方法
US20060248194A1 (en) 2005-03-18 2006-11-02 Riverbed Technology, Inc. Connection forwarding
WO2006112844A1 (en) * 2005-04-18 2006-10-26 Riverbed Technology, Inc. Transparent client-server transaction accelerator
WO2008005629A2 (en) 2006-05-26 2008-01-10 Riverbed Technology, Inc. Throttling of predictive acks in an accelerated network communication system
US8819215B2 (en) * 2007-01-29 2014-08-26 Nokia Corporation System, methods, apparatuses and computer program products for providing step-ahead computing
US9455896B2 (en) 2007-07-23 2016-09-27 Verint Americas Inc. Dedicated network interface
CA2626996A1 (en) * 2007-07-23 2008-07-08 Verint Systems Inc. Dedicated network interface
US8132089B1 (en) 2008-05-02 2012-03-06 Verint Americas, Inc. Error checking at the re-sequencing stage
US8576785B2 (en) * 2008-12-19 2013-11-05 Robert Bosch Gmbh Method of wireless communication using authentication information
CN104220996B (zh) 2012-05-24 2017-03-22 三菱电机株式会社 通信系统、客户端终端以及服务器装置
US9497142B2 (en) * 2012-11-30 2016-11-15 T-Mobile Usa, Inc. Triggering actions on a computing device
KR101430929B1 (ko) * 2012-12-12 2014-08-18 에스케이플래닛 주식회사 사용자의 입력에 즉각적인 결과를 제공할 수 있는 서비스 제공 방법, 이를 위한 시스템 및 장치
WO2014092293A1 (ko) * 2012-12-12 2014-06-19 에스케이플래닛 주식회사 사용자의 입력에 즉각적인 결과를 제공할 수 있는 서비스 제공 방법, 이를 위한 시스템 및 장치
JP6269668B2 (ja) * 2013-07-03 2018-01-31 日本電気株式会社 情報処理装置、リクエスト処理方法及びコンピュータ読み取り可能な記録媒体

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61195439A (ja) * 1985-02-25 1986-08-29 Fujitsu Ltd リモ−トフアイルアクセス方式
JPS6410300A (en) * 1987-07-03 1989-01-13 Hitachi Ltd User's interface system for searching
JP2609640B2 (ja) * 1987-11-20 1997-05-14 株式会社日立製作所 画像表示装置
JPH0228875A (ja) * 1988-07-19 1990-01-30 Nec Corp 分散データベース処理制御方式
JPH02220531A (ja) * 1989-02-22 1990-09-03 Toshiba Corp 呼接続制御方式および流量監視方式
US5341477A (en) * 1989-02-24 1994-08-23 Digital Equipment Corporation Broker for computer network server selection
US5367643A (en) * 1991-02-06 1994-11-22 International Business Machines Corporation Generic high bandwidth adapter having data packet memory configured in three level hierarchy for temporary storage of variable length data packets
US5278963A (en) * 1991-06-21 1994-01-11 International Business Machines Corporation Pretranslation of virtual addresses prior to page crossing
US5331613A (en) * 1991-09-27 1994-07-19 Olympus Optical Co., Ltd. Data reproducing method and apparatus capable of shortening the total time of data reproduction for a plurality of reproduction requests
US5430840A (en) * 1992-04-30 1995-07-04 International Business Machines Corporation Predictive paging assist
JPH06110926A (ja) * 1992-09-29 1994-04-22 Oki Electric Ind Co Ltd 情報検索装置
US5452447A (en) * 1992-12-21 1995-09-19 Sun Microsystems, Inc. Method and apparatus for a caching file server
US5406643A (en) * 1993-02-11 1995-04-11 Motorola, Inc. Method and apparatus for selecting between a plurality of communication paths
JPH0765019A (ja) * 1993-08-30 1995-03-10 Hitachi Ltd データベースサービス方法およびそれを利用したサービス制御装置
GB9320072D0 (en) * 1993-09-29 1993-11-17 Ncr Int Inc Self-service system having predictive capability
JP3488289B2 (ja) * 1994-09-19 2004-01-19 Kddi株式会社 ハイパーメディア文書通信装置
US5613155A (en) * 1995-06-07 1997-03-18 International Business Machines Corporation Bundling client write requests in a server
JP3386964B2 (ja) * 1995-11-20 2003-03-17 シャープ株式会社 ゲートウェイ装置

Also Published As

Publication number Publication date
JP3480794B2 (ja) 2003-12-22
EP0813326A3 (de) 2004-01-21
DE69735866D1 (de) 2006-06-22
EP0813326A2 (de) 1997-12-17
JPH1069468A (ja) 1998-03-10
EP0813326B1 (de) 2006-05-17
US5758087A (en) 1998-05-26

Similar Documents

Publication Publication Date Title
DE69735866T2 (de) Vorrichtung und Verfahren zur Erzeugung von voraussagbaren Antworten
DE69123334T2 (de) Schlangenverwalterverfahren für ein elektronisches Mitteilungssystem
DE19605093B4 (de) Verfahren und Vorrichtung zum Einrichten und Verwalten einer Verbindung zwischen einem Client-Computersystem und jedem einer Mehrzahl von Server-Computersystemen
DE69821050T2 (de) Datenstromdifferenzierungssystem für Endgerätemulator
DE68928311T2 (de) Fern-Urlader
DE69636029T2 (de) Verfahren und Vorrichtung zur Datenübertragung
DE60211254T2 (de) Fernereignis Behandlung in ein Paketnetzwerk
DE69533148T2 (de) Verfahren und Gerät zur Erzeugung und Verwendung kurzer Operationsidentifizierer in objektorientierten Systemen
DE69814900T2 (de) Verfahren und system zur unterstützung verteilter software- entwicklung ohne bewusstsein der verteilten charakteristik der software
DE69115152T2 (de) Verfahren und Vorrichtung zur Verwendung von dynamischer Datenverdichtung.
DE69719620T2 (de) Vorrichtung und Verfahren zur Bestimmung von Server-Cluster-Topologien
DE60125705T2 (de) Vorrichtung und Verfahren zur Implementierung eines HTTP Programmstacks auf einem Client
DE69604391T2 (de) Zeitkohärentes cachesystem
DE69429686T2 (de) Transaktionsverwaltung in objektorientiertem System
DE69228413T2 (de) Fernladung eines Betriebssystems über ein Netzwerk
DE3853122T2 (de) Vorrichtung und Verfahren zur Verbindung von einer Anwendung einer Zugriffseinrichtung für transparente Dienste mit einer entfernt aufgestellten Quelle.
DE112012002106B4 (de) Vorausschauendes Malware Scannen
DE60220418T2 (de) Verfahren und Anbieter zur Systemsynchronisation
DE69730276T2 (de) Vorrichtung und Verfahren zur Erleichterung der Vermeidung von exzeptionellen bestimmten Zuständen während des Ablaufs eines Programmes
DE69635469T2 (de) Synchronisierung zwischen verschiedenen Computeranbieterumgebungen
DE60010011T2 (de) Verfahren und Vorrichtung zur Prüfung eines Rechnersystems durch Software-Fehlerinjektion
DE69613225T2 (de) Differenzierungskommunikationssystem
DE3689990T2 (de) Flexible Datenübertragung für nachrichtenorientierte Protokolle.
DE60209737T2 (de) Methode und apparat zur weitausgedehnten verteilung von elektronischen inhalten in der peer-to-peer art und weise
DE10196732B4 (de) Verfahren, Speichermedium und System zur Verteilung von Software an prozessorbasierte Systeme

Legal Events

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