DE69731318T2 - Herstellen von kommunikationsverbindungen in einem computernetzwerk - Google Patents

Herstellen von kommunikationsverbindungen in einem computernetzwerk Download PDF

Info

Publication number
DE69731318T2
DE69731318T2 DE69731318T DE69731318T DE69731318T2 DE 69731318 T2 DE69731318 T2 DE 69731318T2 DE 69731318 T DE69731318 T DE 69731318T DE 69731318 T DE69731318 T DE 69731318T DE 69731318 T2 DE69731318 T2 DE 69731318T2
Authority
DE
Germany
Prior art keywords
response
session
request
program
data
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
DE69731318T
Other languages
English (en)
Other versions
DE69731318D1 (de
Inventor
Peter David Whitchurch NIBLETT
Karen Louise Eastleigh RANDELL
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
Publication of DE69731318D1 publication Critical patent/DE69731318D1/de
Application granted granted Critical
Publication of DE69731318T2 publication Critical patent/DE69731318T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft die Verbindung von Datenübertragungs- und/oder Datenverarbeitungsressourcen in einem Netz und insbesondere die Bereitstellung von Verbindungen zwischen verschiedenen Datenübertragungsumgebungen.
  • Grundlagen
  • Ein "Netz" von Computern kann aus einer beliebigen Anzahl von Computern bestehen, die Daten untereinander austauschen können. Die Computer können in einer beliebigen Konfiguration angeordnet sein und sich im selben Raum oder in verschiedenen Ländern befinden, solange eine Möglichkeit besteht, sie miteinander zu verbinden (beispielsweise durch Telefonleitungen oder andere Kommunikationssysteme), so dass sie Daten austauschen können. So wie Computer miteinander verbunden werden können, um ein Netz zu bilden, können auch Netze durch als Brücken und Gateway-Computer bekannte Einrichtungen miteinander verbunden werden. Diese Einrichtungen ermöglichen es einem Computer in einem Netz, Daten mit einem Computer in einem anderen Netz auszutauschen. Das Internet ist ein Netz von Netzen ohne einen einzigen Eigner oder eine einzige Steuereinheit und beinhaltet große und kleine, öffentliche und private Netze, und jeder damit verbundene Computer, in dem eine Internetprotokoll-Software ausgeführt wird, ist in Abhängigkeit von Sicherheitskontrollen in der Lage, Daten mit irgendeinem anderen Computer auszutauschen, der ebenfalls mit dem Internet verbunden ist. Diese vielfältige Ansammlung von Netzen, die eine Verbindung untereinander eingegangen sind, beruht nicht auf einem einzigen Übertragungsmedium (beispielsweise kann eine bidirektionale Kommunikation über Satellitenverbindungen, Lichtwellenleiterverbindungen, Telefonleitungen, Kabelfernsehleitungen und lokale Funkverbindungen erfolgen).
  • Der Internetdienst des World Wide Web (WWW) ist eine überregionale Datenabrufeinrichtung, die den Zugriff auf eine riesige Menge von über das Netz zugänglichen Daten bereitstellt und die kostengünstige Datenübertragungen zwischen mit dem Internet verbundenen Computern bereitstellen kann. Informationen über das World Wide Web sind in "Spinning the Web" von Andrew Ford (International Thomson Publishing, London 1995) und "The World Wide Web Unleashed" von John December und Neil Randall (SAMS Publishing, Indianapolis 1994) zu finden. Aufgrund der Kombination aus Flexibilität, Übertragbarkeit und einfacher Handhabung in Verbindung mit der Fähigkeit zur interaktiven Multimediadarstellung wächst die Nutzung des WWW mit ungeheurer Geschwindigkeit. Das WWW ermöglicht es jedem Computer, der mit dem Internet verbunden ist und eine entsprechende Software- und Hardwarekonfiguration aufweist, jedes Dokument abzurufen, das irgendwo im Internet zur Verfügung gestellt worden ist. Zu den abrufbaren Dokumenten im WWW gehören "Hypermedia"-Dokumente, d. h. Dokumente, die Textdokumente oder andere Formen von Medien sein können, beispielsweise Ton- und Bilddaten, und die Verbindungen ("Hyperlinks") zu anderen Dokumenten aufweisen.
  • Das Format von Textdokumenten im WWW ist ein Standardformat in HTML (HyperText Markup Language), so dass ein in einem bestimmten Betriebssystem und einer bestimmten Hardwareplattform erzeugtes Dokument von einem Benutzer in jeder anderen Plattform gelesen werden kann, die einen Web-Browser aufweist (siehe unten). Bilder können in gesonderten Grafikdateien gespeichert werden, beispielsweise in einem Standard-GIF- oder JPEG-Format, und im HTML-Text kann auf diese verwiesen werden, so dass der Benutzer zum Abrufen der angegebenen Bilddateien sowie des HTML-Textes aufgefordert wird.
  • Benutzer greifen unter Verwendung eines "Web-Browsers" oder "Web-Clients" auf diese Daten zu, der in Form von Software im Computer des Benutzers installiert ist und Einrichtungen zum Liefern oder Abrufen von Dokumenten von einem Web-Server über das Internet aufweist. Zu derzeit erhältlichen Web-Browsern gehören WebExplorer von IBM Corporation und Mosaic von NCSA. Solche Browser enthalten Verzeichnisse und Suchprogramme und verstehen HTML und andere WWW-Standardformate und können Dateien in diesen Formaten korrekt anzeigen oder ausgeben. Die Benutzerschnittstelle dieser Web-Browser ist eine grafische "Zeigen-und-Anklicken"-Schnittstelle ('point-and-click' interface) (d. h., Elemente können durch Bewegen eines Cursors über eine grafische Anzeige und anschließendes Drücken einer Maustaste ausgewählt werden). Das WWW ist in Form von Seiten oder Dateien strukturiert, die jeweils einen bestimmten Uniform Resource Locator (oder URL) aufweisen. Der URL bezeichnet sowohl die Servermaschine als auch die jeweilige Datei oder Seite in dieser Maschine. Der Benutzer kann entweder einen bestimmten URL angeben oder mittels der "Hyperlinks" von einem URL zu einem diesem zugeordneten URL springen, das heißt, ein Wort oder ein Symbol auf einer Seite kann einem anderen URL zugeordnet werden, der beispielsweise durch Anklicken mittels einer Maus an der entsprechenden Position ausgewählt werden kann, um den Browser zum Abrufen und Anzeigen der entsprechenden Seite zu veranlassen. In einem einzigen Server können sich viele Seiten befinden, und mittels Hyperlinks verknüpfte zugehörige Seiten können sich in verschiedenen Servern befinden. Falls ein URL mit "http:" beginnt, wird dadurch angezeigt, dass die Datei Hyperlinks enthält.
  • Wenn ein Benutzer einen URL für eine Seite in einem Web-Serversystem unter Verwendung seines Web-Browsers auswählt, wird eine Einwegeanforderung (one-shot request) an den entsprechenden Server übertragen, der einen für diese Seite spezifischen Vorgang ausführt. In vielen Fällen antwortet der Server auf die Anforderung durch Abrufen der angeforderten Seite aus einer Datenbank von gespeicherten Seiten und Rückübertragen der HTML-Seite über das Internet an den WWW-Client zur Anzeige für den Benutzer. Dies wird im Rahmen einer einzigen synchronen Endpunkt-zu-Endpunkt-Kommunikationssitzung ausgeführt. Das heißt, der Browser überträgt seine Anforderung und wartet anschließend auf eine Antwort, bevor er mit irgendeiner weiteren Verarbeitung oder dem Einleiten anderen Anforderungen fortfährt. Der Browser wird als "blockiert" oder "suspendiert" bezeichnet, während er auf die angeforderte Antwort wartet. In einigen Fällen führt die Anforderung des Browsers dazu, dass der Server eine Anwendung zum Erzeugen der HTML startet, jedoch erfordert die Einwegeanforderung vom Browser wiederum eine Antwort im Rahmen der aktuellen synchronen Kommunikationssitzung, da der Browser nicht die Voraussetzungen für gleichzeitig ablaufende Kommunikationssitzungen schafft und keine Anwendungsstatusdaten zwischen Anforderungen gespeichert werden. Ein fehlgeschlagener Zugriff auf eine von einem Browser angeforderte Seite kann dem Benutzer mittels einer Fehlernachricht rückgemeldet werden, die auf der Datenstation des Benutzers angezeigt wird. Falls der Server jedoch hinsichtlich der Antwort lediglich langsam ist, bleibt der Browser für eine unbestimmte Zeitspanne suspendiert. In der Praxis kann ein Benutzer den Kommunikationsversuch abbrechen, falls die Verzögerung unannehmbar lange ist. In Web-Browsern gibt es keine Einrichtung zur automatischen Wiederholung einer Anforderung.
  • Moderne Unternehmen benötigen Einrichtungen zur Kommunikation mit anderen Geschäftsstellen innerhalb des Unternehmens und mit verbundenen Unternehmen, beispielsweise Kunden oder Lieferanten, die sich in einem anderen Land befinden können. Der WWW-Internetdienst kann einem solchen Bedarf teilweise entsprechen, indem ein kostengünstiges Kommunikationsmedium für Kommunikationsvorgänge zwischen Unternehmen bereitgestellt wird, jedoch können das Einwege-Anforderung-Antwort-Kommunikationsmodell des WWW-Internetdienstes und das Fehlen der Voraussetzungen für parallele Anforderungen von einem Browser erhebliche Einschränkungen darstellen, falls angeforderte Daten nicht innerhalb einer annehmbaren Zeitspanne zur Verfügung stehen. Es ist oftmals unannehmbar, dass ein Sendesystem für eine unbestimmte Zeit suspendiert ist, und es ist unannehmbar, dass der Erfolg von kommerziellen Anwendungen davon abhängt, ob eine Serveranwendung rechtzeitig auf eine Anforderung antwortet. Der WWW-Internetdienst stellt keine Einrichtungen für eine gesicherte Zustellung von Nachrichten bereit, was bei vielen kommerziellen Anwendungen erforderlich ist (das heißt, die Anwendung muss Kenntnis davon haben, dass eine von ihr übertragene Nachricht auf ihrem Weg zum Ziel nicht verloren gegangen ist und dass diese nur einmal übertragen wird). Außerdem können kommerzielle Anwendungen einen Dialog mit vielen Anforderung-Antwort-Paaren beinhalten, und die fehlende Übertragung irgendwelcher Kontextdaten zwischen Web-Browseranforderungen bedeutet, dass es keine Einrichtung gibt, um Anforderungen, die Teil derselben kommerziellen Anwendung sind, miteinander in Bezug zu setzen.
  • Ein alternatives Kommunikationsmodell zum synchronen, zeitabhängigen "Anforderung-und-Warten-auf-Antwort"-Modell ('request and await response' model) ist die asynchrone Nachrichtenübertragung. Ein Programm, das eine Nachricht an ein Empfängerprogramm überträgt, muss nicht blockiert werden, um auf eine Antwort vom Empfänger zu warten, und kann folglich mit der Ausführung fortfahren, und der Sender und der Empfänger sind nicht miteinander synchronisiert (serialisiert). Eine asynchrone Nachrichtenübertragung zwischen Programmen verwendet normalerweise Nachrichtenwarteschlangen als Zwischenspeichereinrichtungen, in denen Nachrichten platziert werden, wenn sie von einem ersten Programm übertragen werden, und aus denen sie von einem Empfängerprogramm abgerufen werden können, wenn es dazu bereit ist. Es gibt keine zugeordnete logische Verbindung zwischen den Programmen. Nach dem Platzieren einer Nachricht in einer Warteschlange kann das Senderprogramm mit der Ausführung anderer Tasks fortfahren, die das Übertragen von Nachrichten an andere Programme im Netz beinhalten können. Nach dem Stand der Technik ist es bekannt, asynchrone Nachrichtenübermittlungssysteme bereitzustellen, die die Kommunikation zwischen Programmen über heterogene Netze unterstützen und die Anwendungsprogramme (die jeweils für eine bestimmte Betriebssystemumgebung geschrieben werden) von der Komplexität des Netzes und von den Arbeitsgängen zum Verwalten und Lokalisieren von Nachrichtenwarteschlangen abschirmen. Solche Nachrichtenübermittlungssysteme sind für viele kommerzielle Unternehmen wichtig, die eine leistungsfähige Zusammenarbeit zwischen ihren verschiedenen kommerziellen Anwendungsprogrammen erzielen müssen, deren Datenverarbeitungsressourcen jedoch ganz verschiedenartige Betriebssystem- und Hardwareumgebungen umfassen.
  • Die Nachrichtenwarteschlangenbildung und handelsübliche Produkte zur Nachrichtenwarteschlangenbildung werden in "Messaging and Queuing Using the MIQ", B. Blakely, H. Harris und R. Lewis, McGraw-Hill, 1994, und in den folgenden Veröffentlichungen beschrieben, die von IBM Corporation erhältlich sind: "An Introduction to Messaging and Queuing" (IBM Dokument Nr. GC33-0805-00) und "MQSeries – Message Queue Interface Technical Reference" (IBM Dokument Nr. SC33-0850-01). IBM und MQSeries sind Warenzeichen von IBM Corporation. Die Nachrichtenübermittlungs-Softwareprodukte MQSeries von IBM stellen eine Unterstützung der Transaktionsnachrichtenübermittlung bereit, wobei Nachrichten in logischen Arbeitseinheiten gemäß einem Nachrichtenübermittlungsprotokoll synchronisiert werden, das eine gesicherte einmalige Nachrichtenzustellung auch im Falle von System- oder Kommunikationsfehlern gewährleistet. MQSeries-Produkte stellen eine gesicherte Zustellung bereit, indem eine Nachricht erst aus dem Speicher in einem Sendersystem gelöscht wird, wenn deren sichere Speicherung von einem Empfängersystem bestätigt wird, und durch die Verwendung von hochentwickelten Wiederherstellungseinrichtungen. Vor einer Festschreibung der Übertragung der Nachricht auf die Bestätigung einer erfolgreichen Speicherung hin werden sowohl die Löschung der Nachricht aus dem Speicher im Sendersystem als auch die Einfügung in den Speicher im Empfängersystem "in der Schwebe" gehalten und können im Falle eines Fehlers automatisch zurückgesetzt werden. Dieses Nachrichtenübertragungsprotokoll und die zugeordneten Transaktionskonzepte und Wiederherstellungseinrichtungen werden in der internationalen Patentanmeldung WO 95/10805 und in der US-Patentschrift 5 465 328 beschrieben.
  • Es ist wünschenswert, die Vorteile einer asynchronen (Offline-)Verarbeitung mit Datenverarbeitungsressourcen zu verbinden, die für eine synchrone Kommunikation geeignet sind, beispielsweise Clientsysteme des WWW-Internetdienstes, und im Allgemeinen die Zusammenarbeit zwischen Ressourcen auf der Grundlage eines asynchronen Datenübertragungsmodells und Ressourcen auf der Grundlage eines synchronen Modells zu ermöglichen, vorzugsweise ohne die Notwendigkeit größerer Änderungen an den vorhandenen synchronen Ressourcen. Außerdem ist es wünschenswert, die Überprüfung des Verlaufs von asynchronen Nachrichten von einem synchron verbundenen Clientsystem zu ermöglichen. Die US-Patentschrift 5 329 619 zeigt einen Dienstagenten (service broker), der sowohl eine asynchrone als auch eine synchrone Bearbeitung von Dienstanforderungen von Clients und Servern ermöglicht.
  • Neben der Verbindung ihrer Datenverarbeitungsressourcen im Internet stellen Firmen auch fest, dass Internetstandards (das Internet Protocol, die Verwendung von HTML usw.) innerhalb eines "Intranet" vorteilhafterweise realisiert werden können, das heißt in einem Netz von Computern innerhalb eines bestimmten Unternehmens, wobei dieses Netz den Standards des Internets entspricht. Eine Browser-Software zur Verwendung in Internets steht nun zur Verfügung.
  • Die obigen Anforderungen erläutern beispielhaft den Bedarf vieler Benutzer von Datenverarbeitungsressourcen an einer Kompatibilität zwischen ihren verschiedenen Ressourcen unabhängig davon, ob sie für verschiedene Umgebungen geeignet sind oder auf verschiedenen Kommunikationsmodellen oder -architekturen beruhen. Es besteht eine zunehmende Notwendigkeit, dass Anwendungsprogramme, die für verschiedene Betriebssysteme geschrieben wurden oder auf verschiedenen Kommunikationsmodellen oder Paradigmen beruhen, und Computer und andere Datenübertragungssysteme, die verschiedene Kommunikationsprotokolle, Datenformate, Sprachen oder Kommunikationsmodi verwenden, nahtlos und ohne Kenntnis der Endbenutzer von der Komplexität der Interaktion zusammenarbeiten. Die vorliegende Erfindung dient dazu, bestimmte offensichtliche Inkompatibilitäten zwischen Ressourcen anzugehen, für die eine Zusammenarbeit gewünscht wird, wobei eine Verbindung zwischen den verschiedenen Ressourcen bereitgestellt wird.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Unter einem ersten Aspekt der Erfindung wird ein Datenübertragungsserversystem für ein Datenübertragungsnetz bereitgestellt, wobei das Serversystem Einrichtungen zum Unterstützen einer synchronen Kommunikation zwischen dem Serversystem und einem Clientsystem des Netzes aufweist und wobei das Serversystem außerdem Einrichtungen zum Unterstützen einer asynchronen Kommunikation mit Programmen im Serversystem oder in einem anderen System des Netzes aufweist, wobei das Serversystem Folgendes enthält: ein Mittel, das auf eine Anforderung vom Clientsystem in einer synchronen Kommunikationssitzung zwischen dem Clientsystem und dem Serversystem anspricht, um eine Anforderung an ein Programm im Serversystem oder in einem anderen System des Netzes als asynchrone Kommunikation zu übertragen, wobei die asynchrone Anforderung einen vom Serversystem zugeordneten Sitzungskennzeichner enthält; ein Mittel zum Starten eines Zeitgebers auf die Anforderung vom Clientsystem hin; ein Mittel, das auf den Empfang einer Antwort auf die asynchrone Kommunikation anspricht, um die Antwort unter Verwendung des Sitzungskennzeichners der Anforderung vom Clientsystem zuzuordnen, um zu ermöglichen, dass eine Antwort an das Clientsystem übertragen wird; ein Mittel, das auf die Antwort des Programms auf die asynchrone Kommunikation anspricht, die Sitzungsstatusdaten beinhaltet, die eine serielle Anordnung von Interaktionen ermöglichen, um Sitzungsstatusdaten in die an das Clientsystem übertragene Antwort aufzunehmen; ein Mittel zum Erzeugen einer vorläufigen Antwort vor dem Empfang einer Antwort auf die asynchrone Kommunikation, wobei die vorläufige Antwort den Sitzungskennzeichner enthält; und ein Mittel zum Übertragen der vorläufigen Antwort an das Clientsystem in der synchronen Kommunikationssitzung, falls eine vorgegebene Zeitspanne verstreicht, bevor eine Antwort auf die asynchrone Anforderung vom Serversystem empfangen wird.
  • Folglich weist ein System gemäß der vorliegenden Erfindung ein Mittel zum Übertragen von mindestens einer vorläufigen Antwort an den Client in der synchronen Kommunikationssitzung auf, selbst wenn noch keine Antwort auf die asynchrone Anforderung empfangen wurde.
  • Unter einem zweiten Aspekt stellt die Erfindung ein Verfahren zur Kommunikation zwischen Programmen zwischen einem Clientprogramm und einem Programm im Serversystem oder einem anderen System im Netz unter Verwendung der Einrichtungen eines Serversystems gemäß der obigen Beschreibung bereit.
  • Folglich unterstützen das System und das Verfahren gemäß der Erfindung eine serielle Anordnung von Interaktionen zwischen einem Clientsystem und einem Anwendungsprogramm. Dies kann mit Hilfe von Sitzungsstatusdaten (beispielsweise einer fortlaufenden Nummer, die die Position der Interaktion im aktuellen Dialog kennzeichnet) ausgeführt werden, die in Nachrichten vom Anwendungsprogramm aufgenommen werden, die zum Client rückübertragen werden. Eine Anwendung, die eine weitere Eingabe vom Clientsystem benötigt, zeigt dies mit Hilfe von Sitzungsstatusdaten in ihren Antworten an, wobei diese Daten entweder nur vom Server- oder Clientsystem oder von beiden erkannt werden können. Mittels des Sitzungskennzeichners und der Sitzungsstatusdaten ist es möglich, zugeordnete Anforderung-Antwort-Paare einer bestimmten Anwendung zu ermitteln, die mehrere aufeinanderfolgende Benutzerinteraktionen beinhalten können, und eine korrekte sequenzielle Reihenfolge vom Datenübertragungsvorgängen in einer Sitzung sicherzustellen.
  • Die Erfindung macht es möglich, dass ein Prozess im Clientsystem mit dem asynchron kommunizierenden Programm kommuniziert, selbst wenn der Clientprozess eine zugeordnete synchrone Kommunikationssitzung für die Kommunikation zwischen Programmen benötigt. Das Programm im Serversystem oder in einem anderen System des Netzes kann ein Anwendungsprogramm sein, das für den Empfang und die Übertragung von asynchronen Nachrichten ohne zugeordnete Kommunikationssitzung geeignet ist. Außerdem stellen vorläufige Antworten, die in der anfänglichen synchronen Sitzung an das Clientsystem übertragen werden, ein Mittel zur Bestätigung bereit, dass das Serversystem die Anforderung empfangen hat. Falls das Serversystem Teil eines Netzes von Servern ist, die eine gesicherte Zustellung von Nachrichten zwischen diesen bereitstellen, das synchron verbundene Clientsystem für den Kommunikationssprung zwischen Client und verbundenem Server jedoch keine gesicherte Zustellung unterstützt, kann es in hohem Maße wünschenswert sein, laufend zu überprüfen, ob eine Anforderung den Server erfolgreich erreicht hat, das heißt, eine Überwachung der Kommunikationsvorgänge über die nichtgesicherte Verbindung des Datenübertragungsleitweges.
  • "Vorläufige Antworten" werden vorzugsweise nur übertragen, wenn innerhalb einer festgelegten Zeitspanne keine "vollständige Antwort" zur Übertragung an das Clientsystem verfügbar ist (z. B. innerhalb einer von einem Systemverwalter festgelegten Zeitspanne). Das heißt, falls nach Verstreichen der festgelegten Zeitspanne von einem asynchron kommunizierenden Anwendungsprogramm noch keine Antwort empfangen wurde, so dass der Server die angeforderte vollständige Antwort noch nicht bereitstellen kann, wird im Serversystem ein Prozess gestartet, um eine vorläufige Antwort an das Clientsystem zu übertragen. Die vorläufige Antwort enthält vorzugsweise einen vom Serversystem zugeordneten und in diesem einmaligen Sitzungskennzeichner.
  • Die Aufnahme des Sitzungskennzeichners in vorläufige Antworten an ein Clientsystem ermöglicht es dem Clientsystem (oder einem in diesem arbeitenden Endbenutzer), das vor einer Zeitlimitüberschreitung keine erwartete vollständige Antwort von einem Anwendungsprogramm oder einem anderen asynchron kommunizierenden Programm empfangen hat, den Server zu einem späteren Zeitpunkt erneut zu kontaktieren und unter Verwendung des Sitzungskennzeichners festzustellen, ob eine diesem zugeordnete Antwort noch nicht verfügbar ist. Der Client, der eine vorläufige Antwort empfangen hat, kann demzufolge mit anderen Verarbeitungstasks fortfahren und die Interaktion mit dem Server unter Verwendung des Sitzungskennzeichners zu einem späteren Zeitpunkt nochmals aufsuchen. Dadurch wird das andernfalls auftauchende Problem vermieden, dass ein synchron verbundener Clientprozess entweder (für eine unbestimmte Zeitspanne) blockiert bleiben muss, um auf eine Antwort zu warten, oder die Anwendung verlassen muss, falls eine Antwort nicht schnell genug verfügbar ist.
  • Gemäß einer bevorzugten Ausführungsform der Erfindung erleichtern Datenübertragungsvorgänge, die auf den Ablauf des Zeitgebers hin an ein Clientsystem übertragen werden, eine Entscheidung von einem Prozess oder einem Benutzer im Clientsystem, ob ein synchron verbundener Prozess im Clientsystem suspendiert bleiben muss (d. h., wobei die aktuelle Sitzung aufrechterhalten wird) oder ob die Sitzung verlassen werden muss. Falls die Sitzung verlassen wird, kann der Clientprozess frühere Interaktionen mittels des Sitzungskennzeichners erneut aufsuchen; der an das Clientsystem übertragene Kennzeichner kann in eine nachfolgende an das Serversystem übertragene Anforderung aufgenommen werden, so dass der Server alle verfügbaren Antworten auf frühere Anforderungen ermitteln kann, die denselben Sitzungskennzeichner hatten. Folglich ist es einem Client, der zugeordnete Kommunikationssitzungen benötigt, nach einer Zeitlimitüberschreitung möglich, zu entscheiden, ob er seine synchrone Verbindung mit dem Server aufrechterhält oder ob er zu einer asynchronen Kommunikation mit dem Server unter Verwendung zugeordneter synchroner Sitzungen wechselt oder die Kommunikation einfach endgültig verlässt. Der Client wird folglich mit anderen Möglichkeiten ausgestattet, außer auf unbestimmte Zeit suspendiert zu bleiben oder die Anwendung zu verlassen.
  • Das Ausstatten eines Clients mit einem Sitzungskennzeichner für eine bestimmte Interaktion ermöglicht diesem nicht nur das erneute Aufsuchen früherer Interaktionen, sondern ermöglicht auch die Zuordnung einer Anzahl von Anforderung-Antwort-Paaren eines Dialogs, selbst wenn der Datenübertragungsprozess im Clientsystem auf einem Einwege-Anforderung-Antwort-Modell (one-shot request-reply model) beruht. Außerdem ist dieser hilfreich beim Angehen des Problems eines möglichen Fehlers der Verbindung zwischen Client und Server, während der Client auf eine Antwort wartet. Außerdem ermöglicht er einem Clientprozess oder einem Benutzer, Interaktionen mit mehreren verschiedenen Anwendungen zu verschachteln, indem ein Mittel zum Unterscheiden zwischen diesen bereitgestellt wird, und er ermöglicht den Zugriff von mehr als einem Benutzer gleichzeitig auf dieselbe Anwendung. Sitzungskennzeichner können vom Clientsystem auf den Empfang einer vorläufigen Antwort hin zur nachfolgenden Verwendung gemäß obiger Beschreibung automatisch gespeichert werden.
  • Die Begriffe "Client" und "Server" werden oben lediglich zur Unterscheidung zwischen den in einer bestimmten Interaktion erfüllten Aufgaben verwendet, d. h., der Client gibt eine Anforderung aus, und der Server ergreift auf die Anforderung hin eine Maßnahme. Jeder Computer, der eine Task auf Anforderung eines anderen Computers hin ausführt, ist ein Server. Der Begriff "Client-Server" wird auf dem Gebiet der Datenverarbeitung häufig verwendet, um auf eine Umgebung Bezug zu nehmen, in der ein Client (d. h. eine Datenstation) lediglich Funktionen für eine Endbenutzerinteraktion bereitstellt, während ein Server (z. B. ein Großrechner) eine Datenspeicherung und einen Datenzugriff bereitstellt und eine komplexe Verarbeitung ausführt. Die vorliegende Erfindung kann in solchen "Client-Server"-Umgebungen und auch in nichthierarchischen Umgebungen ('peer-to-peer" environments) angewandt werden, in denen es keine solche Unterscheidung zwischen den von den Datenübertragungssystemen bereitgestellten Funktionen gibt. Die Erfindung ist besonders nützlich in Situationen, in denen ein Computerprogramm in einem ersten System speziell für eine synchrone Kommunikation geeignet ist und es gewünscht wird, dass das Programm mit einem für eine asynchrone Kommunikation zwischen Programmen geeigneten Anwendungsprogramm kommuniziert, das in einem anderen System ausgeführt wird, beispielsweise wenn es gewünscht wird, dass ein Web-Browser über ein Nachrichtenwarteschlangenbildungssystem mit einem asynchronen Anwendungsprogramm zusammenarbeitet.
  • Falls der Server vor dem Verstreichen der festgelegten Zeitspanne eine Antwort auf seine asynchrone Anforderung empfängt, nimmt er gemäß einer bevorzugten Ausführungsform der Erfindung Daten aus der empfangenen Antwort in seine Antwort an das Clientsystem auf, die er in der synchronen Sitzung überträgt. Folglich kann die asynchrone Art der Kommunikation mit dem Anwendungsprogramm für den Client unsichtbar gemacht werden, falls eine Antwort vom Anwendungsprogramm schnell genug verfügbar ist, wobei anschließend in der synchronen Sitzung eine vollständige Antwort an den Client übertragen wird.
  • Eine alternative Ausführungsform der Erfindung vermeidet ein Blockieren eines Clientprozesses durch Rückübertragen einer vorläufigen Bestätigung des Empfangs der Clientanforderung an das Clientsystem, ohne auf das Ablaufen eines Zeitgebers zu warten. Die Empfangsbestätigung enthält einen von einem Prozess im Serversystem zugeordneten Sitzungskennzeichner (beispielsweise eine eindeutige Bezugsnummer). In diesem Fall kann der Client mit anderen Tasks fortfahren, sobald er seine Bestätigung empfangen hat, ohne suspendiert zu werden, um auf eine vollständige Antwort oder das Ablaufen eines Zeitgebers zu warten. wenn anschließend eine Antwort vom Anwendungsprogramm empfangen wird, wird diese in den Speicher im Server platziert und solange zwischengespeichert, bis der Client einen weiteren Kommunikationsvorgang an den Server überträgt, der sich auf den zugeordneten Sitzungskennzeichner bezieht. Der Server vergleicht den Sitzungskennzeichner der gespeicherten Antwort und der neuen Anforderung und überträgt anschließend die gespeicherte Antwort an den Client.
  • Außerdem liegt es im Anwendungsbereich der vorliegenden Erfindung, wie sie in den angehängten Ansprüchen definiert ist, den Typ der Antwort auf eine Clientanforderung von der Art der Anforderung abhängig zu machen. Einige Anforderungen, beispielsweise Warenbestellungen, benötigen möglicherweise eine unmittelbare Empfangsbestätigung mit einer zugeordneten Auftragsnummer, wodurch die Zeit der Suspendierung des Clientprozesses auf ein Minimum herabgesetzt wird. Andere Anforderungen, beispielsweise eine Kontostandsanfrage, benötigen möglicherweise keine Empfangsbestätigung der Anforderung vor der Bereitstellung der angeforderten Daten, da solche Daten oftmals nur benötigt werden, falls sie schnell verfügbar sind; in einem solchen Beispiel ist es für den Client angemessen, eine gewisse Zeit lang auf eine vollständige Antwort zu warten. Diese Entscheidung, ob eine sofortige Bestätigung übertragen werden muss oder nicht, wird vorzugsweise ausgeführt, indem ein Endbenutzer mit einem Mittel zum Anzeigen eines Wunschs nach einer Bestätigung, beispielsweise durch die Bereitstellung eines zusätzlichen Feldes oder Parameters in einem Anforderungsformular, und mit einem Mittel zum Antworten auf Einträge in diesem Feld ausgestattet wird.
  • Die Sitzungskennzeichner werden Anforderungen von einem Clientsystem vorzugsweise durch einen Prozess im Serversystem zugeordnet, der den Sitzungskennzeichner in die zugehörige asynchrone Anforderung einbettet, die er an ein Anwendungsprogramm überträgt. Die asynchrone Serveranforderung enthält folglich Daten aus der anfänglichen Clientanforderung und den zugeordneten Kennzeichner. Wenn das Serversystem anschließend eine Antwort vom Anwendungsprogramm empfängt, die diesen Sitzungskennzeichner enthält, ordnet der Server diese Antwort der Anforderung vom Clientsystem zu und überträgt eine Antwort an das Clientsystem, die den Sitzungskennzeichner enthält. Es sei hier darauf hingewiesen, dass der Server einen Sitzungskennzeichner einer Interaktion mit einem Clientprozess zuordnen kann, der selbst nicht mehrere gleichzeitig ablaufende Sitzungen unterstützt. Der Austausch eines Sitzungskennzeichners und die Verwendung der Speichereinrichtungen eines Clientsystems zum Speichern der an dieses rückübertragenen Sitzungskennzeichner ermöglicht es, dass diese Kennzeichner zur Unterscheidung zwischen gleichzeitig ablaufenden Sitzungen verwendet werden. Dem Client wird es ermöglicht, Interaktionen mit einer Vielzahl vom verschiedenen Anwendungen zu verschachteln, da er ein Mittel zum Unterscheiden zwischen diesen hat, und dem Server wird es ermöglicht, Antworten problemlos asynchronen Nachrichten mit entsprechenden Anforderungen zuzuordnen. Ein solches Schaffen der Voraussetzungen für eine gleichzeitig ablaufende oder parallele Verarbeitung von Anwendungen kann die Leistungsfähigkeit von Unternehmen erheblich steigern.
  • Die Erfindung ermöglicht es, dass Datenübertragungsressourcen, die für synchrone Einwege-Kommunikationsvorgänge entwickelt wurden, mit Ressourcen zusammenarbeiten, die eine asynchrone Kommunikation verwenden.
  • Sitzungskennzeichner werden vorzugsweise sowohl in Datenübertragungen aufgenommen, die nach dem Ablaufen eines Zeitgebers an einen Client übertragen werden, als auch in Antworten, die von einer Anwendung an einen Client übertragen werden, die eine weitere Interaktion mit diesem erwartet. Gemäß einer Ausführungsform wird im Serversystem eine Entscheidung getroffen, ob Sitzungskennzeichnungsdaten in Antworten aufgenommen werden müssen, wobei der Entscheidungsprozess vorzugsweise auf Sitzungsstatusdaten hin, die von einem kommunizierenden Anwendungsprogramm übertragen werden, und auf den Ablauf des Zeitgebers anspricht. Falls keine weitere Eingabe vom Client (d. h. von einem Endbenutzer oder eine Prozess im Clientsystem) erwartet wird, gibt das Serversystem alle sitzungsspezifischen Ressourcen frei, wenn eine Antwort an den Client weitergeleitet und kein Sitzungskennzeichner benötigt wird.
  • In Anbetracht der möglichen Probleme, die mit einer Aufrechterhaltung von Sitzungen für einen längeren Zeitraum als notwendig verbunden sind, kann dieser Entscheidungsprozess wünschenswert sein. Erstens benötigt die Aufrechterhaltung von Sitzungen Serversystemressourcen. Zweitens könnte die Rückübertragung von Kennzeichnerdaten in der letzten von einer Folge von Anforderung-Antwort-Interaktionen ein unbestimmtes Verbleiben der Kennzeichnerdaten im Speicher des Clientsystems zur Folge haben. Dies kann eine Sicherheitsgefährdung darstellen und benötigt außerdem Clientressourcen. Falls Kennzeichnerdaten stets an das Clientsystem rückübertragen werden (d. h., der oben erwähnte Entscheidungsprozess nicht ausgeführt wird), werden die oben erwähnten Probleme durch Löschen der Statusdaten aus dem Clientsystem nach einer angemessenen Zeitspanne angegangen.
  • Eine bevorzugte Ausführungsform der Erfindung stellt ein Datenübertragungssystem bereit, in dem im Serversystem World Wide Web-(WWW-)Serversoftware für den Zugang zum Internet installiert ist und im Clientsystem eine WWW-Browsersoftware installiert ist, um Anforderungen an mit dem Internet verbundene Serversysteme zu übergeben. Das Serversystem weist außerdem Einrichtungen zum Unterstützen einer asynchronen Nachrichtenübertragung zwischen Anwendungsprogrammen auf. Wenn das Serversystem (in einer synchronen Kommunikationssitzung) HTML-Anforderungen von der WWW-Clientdatenstation empfängt, die eine Interaktion mit einem Anwendungsprogramm benötigen, das für asynchrone Kommunikationsvorgänge entwickelt wurde, leitet ein Prozess im Serversystem die Anforderung als eine zur Eingangswarteschlange des Anwendungsprogramm übertragene Nachricht an das Anwendungsprogramm weiter. Falls das Anwendungsprogramm HTML nicht interpretieren kann, setzt der Prozess im Server die empfangene HTML-Anforderung außerdem in ein Nachrichtenformat um, das das Anwendungsprogramm erkennen kann, und leitet die umgesetzte Nachricht anschließend weiter. Auf den Empfang einer Antwortnachricht vom Anwendungsprogramm vor dem Verstreichen einer festgelegten Zeitspanne hin setzt der Prozess im Serversystem (bei Bedarf) die Antwortnachricht wieder in HTML um und überträgt die erzeugten HTML-Seiten als Antwort an die Clientdatenstation. Aus der Sicht des WWW-Clients erfolgt die Antwort in der ursprünglichen synchronen Kommunikationssitzung, falls sie vor dem Verstreichen einer bestimmten Zeitspanne verfügbar ist.
  • Das Serversystem enthält ein Mittel zum Einbetten von Sitzungskennzeichnerdaten in HTML-Seiten, die in an das Clientsystem übertragene Antworten aufgenommen werden. Vorzugsweise enthält das Serversystem außerdem ein Mittel, das auf Sitzungskennzeichnerdaten anspricht, die in der Antwort des Anwendungsprogramms auf die asynchrone Anforderung enthalten sind, um eines oder mehrere HTML-Formulare zum Ausfüllen durch einen Endbenutzer in die HTML-Seiten aufzunehmen, wobei der Sitzungskennzeichner in diese Formulare eingebettet ist. Die Sitzungsstatusdaten können auch in die HTML-Seiten eingebettet werden.
  • Der Server antwortet auf das Verstreichen der Zeitspanne vor dem Empfang einer Antwortnachricht vom Anwendungsprogramm mit dem Übertragen einer Kommunikation (d. h. einer HTML-Seite) an die WWW-Clientdatenstation. Diese Kommunikation enthält einen Sitzungskennzeichner und vorzugsweise einen Kennzeichner des Sitzungsstatus. Die an den Client rückübertragene Kommunikation beendet seine synchrone HTTP-Sitzung, und der WWW-Client ist nicht mehr suspendiert, jedoch ist die länger andauernde Kommunikations-"Sitzung" mit dem Gateway-Computer noch immer insofern logisch vorhanden, als Daten gespeichert werden, die ein erneutes Aufsuchen der Interaktion zwischen dem WWW-Client und dem Gateway-Programm ermöglichen. Ein Endbenutzer kann feststellen, ob für eine zusätzliche Zeitspanne erneut in den suspendierten Status eingetreten und eine neue synchrone Sitzung gestartet werden muss. Der Sitzungskennzeichner und die Statusdaten werden unter Verwendung der Einrichtung von WWW-Clients zum Speichern von WWW-Seiten im Cachespeicher des WWW-Clientsystems gespeichert. Der WWW-Client kann diese gespeicherten Daten zum erneuten Aufsuchen der früheren Interaktion verwenden, um zu einem späteren Zeitpunkt zu überprüfen, ob eine Antwortnachricht vom Anwendungsprogramm im Server verfügbar ist. Durch die Aufnahme des Sitzungskennzeichners und der Sitzungsstatusdaten in nachfolgende Anforderungen an den Server, die der ursprünglichen Sitzung zugeordnet sind, ermöglicht der Client dem Server die Unterscheidung zwischen verschiedenen Sitzungen und zwischen verschiedenen Anforderungen, die Teil derselben Anwendung sind.
  • Die oben beschriebene Ausführungsform der Erfindung stellt eine Umsetzung von HTML in ein Nicht-HTML-Nachrichtenformat gemäß bekannter Verfahren bereit. Wenn die aufzurufende Anwendung HTML interpretieren kann, wird eine solche Umsetzung offensichtlich nicht benötigt.
  • Folglich stellt die vorliegende Erfindung in einer bevorzugten Ausführungsform eine Verbindung zwischen der synchronen Umgebung des WWW und der asynchronen Umgebung von Nachrichtenübermittlungssystemen bereit. Die Erfindung kann gleichermaßen auf die Verwendung einer Browsersoftware zur Kommunikation mit Anwendungsprogrammen über ein Serversystem eines Intranet angewandt werden.
  • BESCHREIBUNG VON BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Die vorliegende Erfindung wird nun mit Hilfe von Beispielen mit Bezugnahme auf die begleitenden Zeichnungen ausführlicher beschrieben, in denen:
  • 1 eine schematische Darstellung einer Kommunikation zwischen Client- und Serversystemen über das Internet ist;
  • 2 eine schematische Darstellung einer Kommunikation zwischen Programmen unter Verwendung einer asynchronen Nachrichtenübermittlung und Warteschlangenbildung ist;
  • 3 ein in einem Serversystem installiertes Gateway-Programm zur Interaktion zwischen einem synchron verbundenen Web-Browser und einem für asynchrone Kommunikation geeigneten Anwendungsprogramm gemäß einer Ausführungsform der vorliegenden Erfindung zeigt;
  • 4 die Zusammenarbeit zwischen einem Gateway-Computer, einem Browser und Anwendungsprogrammen gemäß einer zweiten Ausführungsform der Erfindung zeigt;
  • 5 ein Flussdiagramm ist, das die in erster Linie von einem Gateway-Programm in einem Serversystem ausgeführten Arbeitsgänge gemäß einer Ausführungsform der Erfindung zeigt, wenn eine Anforderung von einem Web-Browserprogramm übertragen wird.
  • Die vorliegende Erfindung kann in vielen Datenverarbeitungssystemen und Datenübertragungssystemen realisiert werden, in denen Verbindungen zwischen verschiedenen Umgebungen benötigt werden. Die Erfindung ist nicht auf eine spezifische Computerhardware oder auf spezifische Betriebssysteme oder Typen von Kommunikationsverbindungen begrenzt und kann in Hardware oder Software oder als eine Kombination von Hardware- und Softwarekomponenten ausgeführt werden.
  • Eine bevorzugte Ausführungsform der vorliegenden Erfindung beinhaltet eine in Software realisierte Komponente eines Serversystems, die eine Verbindung zwischen einer asynchronen Nachrichtenübermittlungs- und Warteschlangenbildungsumgebung und der synchronen Umgebung des World Wide Web bereitstellt.
  • Wie in 1 gezeigt und oben beschrieben wird, sind Endbenutzer des Internet mit Computern 10 mit einem Internetzugang und einer in diesen installierten Web-Browsersoftware 20 ausgestattet. Ein Web-Serversystem 30 umfasst ein Computersystem (das beispielsweise die Betriebssystemsoftware Windows NT oder UNIX ausführt oder ein IBM PS/2 Modell 80 Computer mit der Betriebssystemsoftware OS/2 oder ein Großrechnersystem sein kann, das das Betriebssystem MVS von IBM unterstützt), das mit dem Internet verbunden ist und die Web-Serversoftware 40 (beispielsweise IBM Internet Connection Server) ausführt. OS/2, MVS und PS/2 sind Warenzeichen von IBM Corporation. Die Web-Serversoftware verarbeitet HTTP-(HyperText Transfer Protocol-)Anforderungen von den Web-Browsern, analysiert diese als Anforderung nach einer statischen HTML-Seite oder nach einem ausführbaren Programm und antwortet durch Übertragen einer verfügbaren HTML-Seite (z. B. im Festplattenspeicher zwischengespeichert) an den Web-Browser oder durch Aufrufen eines Programms 50 zur Ausführung im Web-Serversystem oder in einem anderen System zur HTML-Erzeugung. Programme werden von einem Web-Server über die Common Gateway Interface (CGI) 60 oder eine andere vom Web-Server realisierte Schnittstelle aufgerufen (die meisten Web-Server unterstützen zwei Schnittstellen, von denen eine die CGI ist).
  • 2 ist eine vereinfachte schematische Darstellung einer Kommunikation zwischen Programmen unter Verwendung einer asynchronen Nachrichtenübermittlung und Warteschlangenbildung unter der Steuerung eines Netzes von Warteschlangenverwaltungsprogrammen, beispielsweise der MQSeries-Programme von IBM. Eine Warteschlangenverwaltungseinrichtung (queue manager) ist der Systemdienst, der die von Anwendungen verwendeten Einrichtungen zur Nachrichtenwarteschlangenbildung bereitstellt. Wie in 2 gezeigt wird, gibt ein erstes Anwendungsprogramm 100 im System 110 einen Befehl aus, um unter der Steuerung eines lokalen Warteschlangenverwaltungsprogramms 120 und einer in einem fernen System 160 ausgeführten kommunizierenden Warteschlangenverwaltungseinrichtung 130 eine Nachricht in eine Warteschlange 140 zu stellen. Ein Serveranwendungsprogramm 150 entnimmt die Nachricht sodann der Warteschlange 140, wenn es zum verarbeiten derselben bereit ist. Die kommerzielle Anwendung kann beispielsweise eine Anwendung zur Bankkapitalüberweisung oder zur Buchung eines Fluges bei einer Fluggesellschaft sein. Die Nachrichtenwarteschlangen sind benannte Objekte, in denen Nachrichten gesammelt werden und aus denen diese später entfernt werden.
  • Für die Verwaltung einer bestimmten Warteschlange ist eine bestimmte Warteschlangenverwaltungseinrichtung zuständig. Eine Nachrichtenwarteschlange ist nicht nur ein Stapelspeicher: wenn Nachrichten zu einer Warteschlange hinzugefügt werden, werden sie am Ende hinzugefügt, und wenn Nachrichten aus einer Warteschlange entnommen werden, werden sie normalerweise von vorne entnommen. Die physische Darstellung der Nachrichtenwarteschlange hängt von der Umgebung ab, es kann sich jedoch um ein oder mehrere Puffer im Hauptspeicher, eine oder mehrere Dateien auf einer Festplatte oder einer anderen nichtflüchtigen Speichereinheit oder beides handeln. Für die physische Verwaltung von Nachrichtenwarteschlangen ist insgesamt ein Warteschlangenverwaltungsprogramm zuständig, und solche Einzelheiten werden für Anwendungsprogramme nicht sichtbar gemacht. Anwendungen können eine Nachrichtenwarteschlange einfach als eine "Blackbox" sehen, in der Nachrichten gesammelt werden. Anwendungen haben Zugriff auf Nachrichtenwarteschlangen unter Verwendung von API-Aufrufen zur Nachrichtenwarteschlangenbildung, um mit der Warteschlangenverwaltungseinrichtung zu kommunizieren, die im selben System wie die Anwendung installiert ist (d. h. mit der lokalen Warteschlangenverwaltungseinrichtung).
  • Anwendungsprogramme kommunizieren durch Vereinbarung der Verwendung bestimmter angegebener Nachrichtenwarteschlangen, wobei Nachrichten an die spezifischen Zielwarteschlangen übertragen werden, aus denen die Anwendungsprogramme vereinbarungsgemäß lesen. Die Positionen dieser Warteschlangen müssen für die Anwendungen, die die Nachrichten übertragen, nicht sichtbar sein; jede Anwendung interagiert nur mit ihrer lokalen Warteschlangenverwaltungseinrichtung, und das Netz von miteinander verbundenen Warteschlangenverwaltungseinrichtungen ist für das Bewegen der Nachrichten in die vorgesehenen Warteschlangen zuständig. Jede Warteschlangenverwaltungseinrichtung verwaltet lokale Leitweglenkungstabellen (routing tables) zum Lokalisieren der anderen Warteschlangenverwaltungseinrichtungen im Netz. Auf diese Weise vereinfacht die anwendungsunterstützende Software zur Nachrichtenwarteschlangenbildung in hohem Maße den bei den Anwendungsprogrammen erforderlichen Komplexitätsgrad, wobei sie diese von der Notwendigkeit befreit, ihre eigenen komplexen Datenübertragungssteuerungen zu auszuführen.
  • Die vorliegende Erfindung stellt einen Zugriff auf ein solches Netz von miteinander verbundenen Warteschlangenverwaltungseinrichtungen für Benutzer bereit, in deren lokalem System keine Warteschlangenverwaltungsprogramme installiert sind. Außerdem stellt die Erfindung eine Umgebung zur Entwicklung komplexer, zuverlässiger WWW-Anwendungen bereit, die aus den Diensten vorhandener anwendungsunterstützender Middleware-Programme, beispielsweise der MQSeries-Produkte von IBM, Nutzen ziehen können.
  • Eine in Software ausgeführte Verbindungskomponente wird für eine Installation in einem WWW-Server bereitgestellt, um Nachrichten im Auftrag von synchron verbundenen Endbenutzern auszugeben und zu empfangen. Diese im Folgenden als Gateway-Programm bezeichnete Verbindungskomponente wird durch Anforderungen von einem Web-Browser aufgerufen, wie zuvor beschrieben wurde. Das Gateway-Programm bildet eine Schnittstelle mit dem WWW-Server, beispielsweise über die Standard-CGI (Common Gateway Interface). Das Gateway-Programm ermöglicht die Verwaltung von mehreren Benutzern und deren Status gleichzeitig, wie an späterer Stelle beschrieben wird, und verwaltet die Unterschiede zwischen synchronen HTTP-Nachrichten und asynchronen Nachrichten, wobei der synchron verbundene Web-Browser mit Daten über den Fortschritt der asynchronen Nachrichten versehen wird, die es im Auftrag des Browsers ausgibt. Außerdem verwaltet das Gateway-Programm die Verbindung zwischen Nachrichtenübermittlungssystemen mit gesicherter Zustellung (assured-delivery messaging systems) und HTTP-Kommunikationsvorgängen ohne gesicherte Zustellung. Obwohl möglicherweise eine Datenumsetzung (beispielsweise ASCII in EBCDIC) notwendig ist, da verschiedene Architekturen und Hardwareplattformen unterschiedliche Datendarstellungen und Parameter aufweisen, ist eine solche Umsetzung nach dem Stand der Technik bekannt und muss vom Gateway-Programm nicht ausgeführt werden, da bekannte Softwareprodukte zur Nachrichtenübermittlung die Umsetzung ausführen. Außerdem muss das Gateway-Programm keine umfassenden Sicherheitseinrichtungen bereitstellen, da solche Einrichtungen in bekannter Nachrichtenübermittlungssoftware und WWW-Servern (beispielsweise Secure Internet Server von IBM) realisiert werden.
  • 3 zeigt ein Gateway-Programm 200, das eine Schnittstelle zwischen einem Nachrichtenwarteschlangen-Verwaltungsprogramm 210 und einem Web-Serverprogramm 220 bildet, die in einem Computersystem 230 installiert sind. Wie in diesem Beispiel gezeigt wird, kann das Gateway-Programm zum Bilden einer Schnittstelle zwischen dem Web-Server und einem Anwendungsprogramm 240 zur Nachrichtenwarteschlangenbildung verwendet werden, das in einer anderen Maschine als dem Serversystem 230 ausgeführt werden kann. In diesem Fall wird im Serversystem keine Anwendungssoftware benötigt. Das System, in dem die Anwendung mit Nachrichtenwarteschlangenbildung ausgeführt wird, kann über das Internet oder über ein anderes Datenübertragungsnetz mit dem Serversystem verbunden sein. Das Anwendungsprogramm dieses Beispiels kann HTML-Formulardaten vom Web-Browser 250 interpretieren und als Antwort HTML-Daten erzeugen.
  • Eine ähnliche Verwendung des Gateway-Programms in Verbindung mit einer im Web-Serversystem installierten Anwendungskomponente 260 zur Formatumsetzung wird in 4 gezeigt. Die Umsetzungskomponente dient zum Umsetzen zwischen den HTML-Anforderungen und -Antworten von Web-Browsern und der internen Nachrichtenstruktur eines Anwendungsprogramms 270, das HTML nicht interpretieren kann. Diese Umsetzungskomponente 260 ermöglicht es folglich, dass ein Gateway-Programm 200' gemäß der Erfindung mit vorhandenen Anwendungen zur Nachrichtenwarteschlangenbildung verwendet werden kann. Eine Serverkomponente kann außerdem Anforderungen an mehrere Zielanwendungen und eine Antwort an den Web-Browser in einer einzigen Arbeitseinheit koordinieren. Eine HTML-Umsetzung ist nach dem Stand der Technik bereits bekannt und wird demzufolge hier nicht näher beschrieben.
  • Mit Bezugnahme auf 5 werden nun das Gateway-Programm und der Kommunikationsfluss zwischen einem Web-Browser und einem asynchronen Anwendungsprogramm beschrieben. Für jedes dem Gateway-Programm zugeordnete Anwendungsprogramm zur Nachrichtenwarteschlangenbildung werden eine oder mehrere Anwendungseingangswarteschlangen definiert. Diese Anwendung und ihre Eingangswarteschlangen können sich in der Web-Servermaschine oder in irgendeiner anderen Maschine befinden, die unter Verwendung der Unterstützung der Middleware zur Nachrichtenwarteschlangenbildung zur Kommunikation mit dem Server verbunden ist. Der Gateway-Computer hat eine im Server befindliche Antwortwarteschlange für von den Anwendungsprogrammen übertragene Nachrichten, die von einem lokalen Warteschlangenverwaltungsprogramm verwaltet wird.
  • Ein Benutzer kommuniziert mit dem Gateway-Programm über eine Anforderung 300 GET oder POST zum Ausfüllen eines HTML-Formulars, die den Namen der Anwendung mit Nachrichtenwarteschlangenbildung oder des Dienstes anzeigt, die bzw. den er verwenden möchte. In der bevorzugten Ausführungsform der Erfindung enthält der Name den Anwendungswarteschlangennamen, in einer alternativen Ausführungsform wird dieser jedoch vom Gateway-Programm aus dem Anwendungsnamen abgeleitet.
  • Es folgt ein Beispiel für einen Befehl, durch den ein Benutzer eine Anwendung aufruft:
    <form method"=post" action="/mig-bin/migcgi/MQApp">
  • Angeben eines Nachrichtenwarteschlangenbildungssystems:
    <input type="input"; name="QMName"; size="48"; max length="48">
    und einer Anwendung:
    <input type="input"; name="QName"; size="48"; max length="48">
    <input type="submit"; value="Click here to start the application">
    </form>
  • QName wird zur Angabe des Ziels für die erzeugte asynchrone Nachricht benötigt und wird normalerweise mit der Anwendung selbst ermittelt. QMName ist optional. Falls es angegeben wird, wird es zusammen mit QName zum Angeben des Ziels für die Nachricht verwendet. Falls es nicht angegeben wird, wird ein leerer Name verwendet. Normale Namenauswertungsregeln (name resolution rules) für Nachrichtenübermittlungssysteme können angewandt werden. Zusätzliche Felder, die anwendungsspezifische Zeichenformatdaten enthalten, können in die Formularanforderung aufgenommen werden. Diese Felder werden in der vom Gateway-Computer übergebenen Nachricht zur Anwendung weitergeleitet.
  • Die erste Interaktion eines Benutzers mit einem Anwendungsprogramm (der Anwendungs-"Eintrittspunkt") kommt normalerweise von einer statischen HTML-Web-Seite. Der Benutzer führt eine Dereferenzierung eines bestimmten URL aus oder leitet ein HTML-Format weiter, 300, das mit dem Gateway- Programm interagiert. Die anfängliche HTML-Anforderung des Browsers enthält keinen eingebetteten Sitzungskennzeichner. Wenn ein Benutzer erstmalig einen solchen Eintrittspunkt durchläuft (d. h., es wird eine HTML-Anforderung übertragen, die nicht zu einer bereits bestehenden Sitzung gehört) und eine Anwendung einleitet, richtet das Gateway-Programm eine Sitzung ein, 340, die durch einen im Gateway-Computer eindeutigen Sitzungskennzeichner gekennzeichnet ist, um die Kombination aus der vom Benutzer angeforderten Anwendung und dem Exemplar der Anforderung darzustellen. Sitzungskennzeichner können zufällig oder unter Verwendung von eindeutigen Serverkennungen erzeugt werden, um sicherzustellen, dass jeder für das gesamte Netz einmalig ist, dies ist jedoch nicht wesentlich. Vorhandene Nachrichtenwarteschlangen-Verwaltungsprogramme (beispielsweise die MQSeries-Programme von IBM) haben Einrichtungen zum Erzeugen eindeutiger Kennzeichner, und das Gateway-Programm der bevorzugten Ausführungsform nutzt diese Einrichtung.
  • Der Gateway-Computer fügt die Sitzungskennzeichnungsdaten zusammen mit Clientsystem- oder Benutzerkennungsdaten einer Sitzungstabelle hinzu, 350 (als Einträge in einer Nachrichtenwarteschlange realisiert, die zum Beispiel in einem gemeinsam genutzten Speicher mit übergreifender Verarbeitung (cross-processed shared memory) eines die Betriebssystemprogramme OS/2 oder AIX ausführenden Serversystems zwischengespeichert oder in den Festplattenspeicher geschrieben wird). OS/2 und AIX sind Warenzeichen von IBM Corporation. Diese Tabelle wird im Anschluss an die Zuordnung von Sitzungskennzeichnern zu Benutzeranforderungen und Anwendungsprogrammantworten verwendet, wie an späterer Stelle beschrieben wird. Auf diese Weise werden keine Voraussetzungen zum Starten einer Anwendung außer dem Durchlaufen eines Anwendungseintrittspunktes geschaffen. Eine Benutzerinteraktion kann nicht zu mehr als einer Sitzung gehören.
  • Nach der Zuweisung eines Sitzungskennzeichners zu der Interaktion eines Benutzers stellt das Gateway-Programm eine Nachricht in die definierte Eingangswarteschlange des Anwendungsprogramms, 360, startet einen Zeitgeber, 370, und leitet einen Prozess zum Empfangen einer Antwortnachricht vom Anwendungsprogramm ein, 370. Der Empfang von Antworten wird an späterer Stelle beschrieben. Die Nachricht enthält Statusdaten in Form einer laufenden Nummer, die die Position dieser Interaktion in der Gesamtkommunikation zwischen dem anfordernden Clientprozess und dem Anwendungsprogramm kennzeichnet, und sie enthält eine Kennung eines Benutzers oder eines Clientsystems sowie die vom Web-Browser übermittelten Eingangsdaten. Diese Daten werden der Anwendung im geeigneten Zeichensatz und der geeigneten Codeseite dargeboten (wobei eine Umsetzung von einem Prozess im Serversystem separat vom Gateway-Prozess selbst ausgeführt wird, wie oben erwähnt wurde). Das Ziel einer Nachricht kann eine lang andauernde Anwendung mit Nachrichtenwarteschlangenbildung sein, oder ihr Eintreffen kann zum Einleiten des Neustarts einer Anwendung mit Nachrichtenwarteschlangenbildung verwendet werden. wie oben erläutert wurde, kann die Erfindung zur Verwendung mit Anwendungen, die "Web-fähig" sind (das heißt, die HTML-Seiten verstehen und erzeugen können), und mit Anwendungen realisiert werden, die eine HTML-Umsetzung erfordern. Die folgende Beschreibung einer Ausführungsform der Erfindung betrifft das Beispiel einer Interaktion mit einer Web-fähigen Anwendung.
  • Die Anwendung mit Nachrichtenwarteschlangenbildung muss auf die empfangene Nachricht durch Übertragen einer HTML-Seite an die Antwortwarteschlange des Gateway-Programms antworten. Wie oben beschrieben wird, hat das Gateway-Programm bereits beim Empfang einen Prozess zum Entnehmen dieser Antworten aus seiner Warteschlange aufgerufen. Dies wird unter Verwendung einer bekannten Einrichtung des zusammenarbeitenden Programms zur Nachrichtenwarteschlangenbildung ausgeführt, wobei ein Befehl zum Abrufen von Nachrichten aus einer Warteschlange wahlweise einen Befehl zum Abwarten einer angegebenen Zeitspanne enthalten kann, falls die Antwort nicht beim erstmaligen Versuch des Abrufvorgangs sofort verfügbar ist. In den MQSeries-Warteschlangenverwaltungsprodukten von IBM wird diese Einrichtung als eine Option im API-Befehl "Nachricht abrufen" aufgerufen, "MQGET_Wait", wie in der Veröffentlichung "MQSeries – Message Queue Interface Technical Reference" (IBM Dokument Nr. SC33-0850-01) beschrieben wird, auf die zuvor verwiesen wurde. Folglich überträgt das Gateway-Programm eine Nachricht und gibt einen Befehl zum Abrufen der Antwortnachricht aus, 370, wobei dem Warteschlangenverwaltungsprogramm die Steuerung des eigentlichen Vorgangs "Nachricht abrufen" übergeben wird, der die HTML-Seite aus der Antwortwarteschlange abruft, 420, und diese an den Gateway-Computer weiterleitet. Das Gateway-Programm überträgt sodann die HTML-Seite, die den aktuellen Sitzungskennzeichner als verborgenes Feld in HTML enthält, an den Browser, 420.
  • Falls die Wartezeit des Vorgangs "Nachricht abrufen" vor dem Erhalt der Antwortnachricht durch das Gateway-Programm verstreicht, kehrt der Vorgang "Nachricht abrufen" zurück, und das Gateway-Programm reagiert mit dem Übertragen einer vorläufigen Antwortnachricht an den Browser, 390, 400. Diese vorläufige Antwort beendet die synchrone Sitzung, da sie jedoch einen Sitzungskennzeichner enthält, kann die Sitzung später "erneut gestartet" werden (genaugenommen wird eine neue Sitzung gestartet, da diese jedoch eine Interaktion zwischen demselben Browser und denselben Gateway-Programmen mit sich bringt und auf denselben Sitzungskennzeichner Bezug nimmt, kann sie als erneuter Start der ursprünglichen Sitzung betrachtet werden). Falls die synchrone Sitzung zwischen dem WWW-Browser und dem mit dem Gateway-Computer verbundenen WWW-Serverprogramm andernfalls vor dem Empfang der Antwort verlassen wird, bricht der Gateway-Computer alle anstehenden (in-doubt) Vorgänge "Nachricht abrufen" ab. Jede Antwortnachricht, die nach einer Zeitlimitüberschreitung oder einer anderen Aufgabe der Sitzung in die Antwortwarteschlange des Gateway-Programms gestellt wird, verbleibt dort solange, bis der WWW-Browser auf der Suche nach der entsprechenden Antwortnachricht erneut mit dem Gateway-Computer interagiert. Wenn eine solche nachfolgende WWW-Browseranforderung empfangen wird, ruft das Gateway-Programm erneut den Vorgang "Nachricht abrufen" auf (mit einer Wartezeit).
  • Es ist nicht erforderlich, dass alle in der Sitzung an einen Client übertragenen Kommunikationsvorgänge den Sitzungskennzeichner enthalten, der Kennzeichner wird jedoch jedes Mal aufgenommen, wenn eine weitere Clientinteraktion erwartet wird. Dies im Allgemeinen der Fall, wenn ein Kommunikationsvorgang nach einer Zeitlimitüberschreitung und vor der Verfügbarkeit der Antwort der Anwendung übertragen wird, 400, oder wenn eine Anwendungsantwort empfangen wird und die enthaltenen Sitzungsstatusdaten die Erwartung einer weiteren Clientinteraktion bestätigen. Im Allgemeinen aktualisiert das Gateway-Programm seine Sitzungstabelle mit den Sitzungsstatusdaten für die entsprechende Sitzung, 420, wenn eine Antwort von einem Anwendungsprogramm empfangen wird. Falls die Anwendung jedoch keine weitere Interaktion vom Benutzer oder vom Prozess im Clientsystem benötigt (wie durch die Sitzungsstatusdaten oder das Fehlen derselben in Antworten vom Anwendungsprogramm gekennzeichnet wird), gibt das Gateway-Programm alle sitzungsspezifischen Ressourcen frei, 420, wenn es die Seite an den Browser weiterleitet.
  • Wenn das aktuelle Anwendungsprogramm eine weitere Clientinteraktion "erwartet" oder benötigt (d. h. erwartet, dass der Client entweder mit dem aktuellen Anwendungsprogramm oder einem anderen Anwendungsprogramm interagiert, bevor die Gesamtanwendung beendet wird), zeigt es dies mittels einer Markierung in seinen Antworten an den Server an. Außerdem nimmt es weitere HTML-Formulare in die an den Client übertragene HTML-Seite auf, wobei der Sitzungskennzeichner in jedes der dynamisch erzeugten HTML-Formulare aufgenommen wird).
  • Der Web-Browser hat Einrichtungen zum Zwischenspeichern von Seiten, 410, und kann folglich die eingebetteten Sitzungskennzeichner speichern, und dadurch wird es möglich, dass ein einziger Benutzer mehr als eine offene Sitzung hat. Diese Sitzungen können verschachtelt sein oder sich überlappen. Wenn ein einen Sitzungskennzeichner enthaltendes Formular anschließend in 300 im Browser ausgefüllt wird, fließt der Sitzungskennzeichner zurück zum Gateway-Programm im Server, so dass das Gateway-Programm das anschließend empfangene Formular der korrekten Sitzung zuordnen kann, 320, 330. Der Sitzungskennzeichner wird zum Unterscheiden der Anforderung von anderen Anforderungen von anderen Benutzern und anderen Anforderungen vom selben Benutzer, jedoch für verschiedene Anwendungen, verwendet. Ein Prozess, der Teil des Gateway-Programms ist, fragt die Sitzungstabelle nach einer Übereinstimmung zwischen einem Tabelleneintrag und dem Sitzungskennzeichner und den Sitzungsstatusdaten einer empfangenen Anforderung ab, 320. Falls die Sitzungs- und Statusdaten keiner bestehenden Interaktion mit einer Anwendung entsprechen, stellt das Gateway-Programm die Statusdaten und die Eingangsdaten als eine Nachricht in die Eingangswarteschlange der Anwendung, wie oben beschrieben wurde. Falls ein Vergleich der Sitzungs- und Statusdaten einer empfangenen Anforderung mit Einträgen in der Sitzungstabelle jedoch eine Übereinstimmung ergibt, muss dies ein erneuter Versuch einer früheren Anforderung sein, und folglich ist eine Antwort möglicherweise bereits verfügbar. Es muss dann keine neue Nachricht an die Anwendung übertragen werden, da die entsprechende(n) Warteschlangenverwaltungseinrichtung(en) eine gesicherte einmalige Zustellung der zuvor übertragenen Nachricht zuverlässig bereitstellen müssen; das Gateway-Programm ruft den Vorgang "Abrufen mit Wartezeit" (Get with Wait operation) auf, 370, um seine Antwortwarteschlange auf die erwartete Antwortnachricht zu überprüfen.
  • Die Zuordnung eines Sitzungskennzeichners zu einer Benutzerinteraktion, der sodann an den Browser rückübertragen und dort gespeichert wird, löst folglich mehrere technische Probleme. Erstens ermöglicht dies mehr als einem Benutzer gleichzeitig den Zugriff auf dieselbe Anwendung oder denselben Dienst, wobei der Gateway-Computer zwischen empfangenen Antworten unterscheiden kann. Zweitens wird sichergestellt, dass genügend Kontextdaten zwischen aufeinanderfolgenden Anforderungen übertragen werden, die von jedem Benutzer an jede Serveranwendung ausgegeben werden, um eine Vielzahl von Anforderung-Antwort-Paaren eines lang andauernden Dialogs einer Anwendung einander zuzuordnen. Drittens wird es dem Benutzer ermöglicht, Interaktionen mit mehreren verschiedenen Anwendungen zu verschachteln, indem ein Mechanismus zum Unterscheiden zwischen diesen bereitgestellt wird. Viertens werden die Voraussetzungen für die Möglichkeit geschaffen, dass ein Benutzer eine Anwendung in jeder Phase verlässt, möglicherweise ohne irgendeine Benachrichtigung an den Server oder das Gateway-Programm, und es wird die Möglichkeit eines Verbindungsfehlers zwischen dem Benutzer und dem Server angegangen.
  • Außer dem Sitzungskennzeichner enthält die dynamisch erzeugte HTML-Seite eine laufende Nummer, die die Position der Interaktion in der aktuellen Sitzung kennzeichnet. Diese wird durch die nächste Browseranforderung an das Gateway-Programm rückübertragen, und dieses führt eine Prüfung auf den erwarteten Wert aus, 320. Dieser Mechanismus des Aufrechterhaltens von Daten und des Ausführungsstatuskontextes unter Verwendung von in einer Tabelle festgehaltenen Sitzungskennzeichnern und laufenden Nummern ermöglicht die Ausführung von Folgen von Clientanforderungen, die voneinander abhängig sind – der Serveranwendung wird die Unterscheidung zwischen einer Vielzahl von Nachrichten innerhalb derselben Sitzung ermöglicht.
  • Eine Sitzung kann auf eine der folgenden Arten beendet werden:
  • Eine Serveranwendung zeigt in ihrer Antwortnachricht an, dass keine weitere Benutzereingabe angefordert wird, und der Gateway-Computer antwortet durch Freigeben der sitzungsspezifischen Ressourcen, 420.
  • Eine ein Formular enthaltende HTML-Seite wird an den Benutzer übertragen, wird jedoch nicht ausgefüllt und innerhalb einer von der Verwaltungseinrichtung definierten Zeitspanne rückübertragen. Der Gateway-Computer überträgt eine Beendigungsnachricht an die Serveranwendung, die eine Antwort vom Benutzer erwartete (wobei eine unnötige Aufrechterhaltung der nichtbeendeten Serveranwendung vermieden wird).
  • Ein Benutzer entscheidet sich zum Verlassen der Anwendung durch einen Dialog mit dem Gateway-Programm, wenn die Serveranwendung nicht innerhalb einer annehmbaren Zeitspanne auf Nachrichten antwortet. Das Gateway-Programm versucht, die übertragene Nachricht abzurufen. Falls dies nicht möglich ist, überträgt es eine Abbruchnachricht an das Serveranwendungsprogramm.
  • Eine Sitzungsbeendigung ermöglicht dem Gateway-Programm und Serveranwendungen die Freigabe aller zugeordneten sitzungsspezifischen Ressourcen. Ein Sitzungskennzeichner wird zurückgewiesen (d. h. leitet keine weiteren Kommunikationsvorgänge außer einer Rückweisungsbenachrichtigung ein), falls er nach Beendigung der Sitzung vom Benutzer oder der Serveranwendung an das Gateway-Programm übertragen wird. Es sei darauf hingewiesen, dass das Verstreichen der servergesteuerten Zeitlimitperiode die Zeitspanne festlegt, für die der Clientprozess suspendiert bleiben muss, beendet jedoch nicht automatisch die Sitzung.
  • Nach einer solchen Zeitlimitüberschreitung bewahrt das Gateway-Programm folglich noch immer Sitzungskennzeichnungs- und Statusdaten auf.
  • Es sind Nachrichtenwarteschlangen-Verwaltungsprogramme bekannt, die Einrichtungen aufweisen, um sicherzustellen, dass Nachrichten vom Gateway-Programm in die Eingangswarteschlange der Anwendung gestellt werden und dass Antworten an das Gateway-Programm rückübertragen werden (siehe unten). Die Nachrichtenwarteschlangen-Verwaltungsprogramme können jedoch nicht garantieren, dass die Datenübertragungsverbindungen zu einem bestimmten Zeitpunkt funktionieren oder dass die Anwendung selbst zur Verarbeitung einer Anforderung vom Browser ausgeführt wird. Das Warteschlangenverwaltungsprogramm kann außerdem keine gesicherte Zustellung an einen Web-Browser bereitstellen, der mit einem Netz aus Warteschlangenverwaltungseinrichtungen verbunden ist. Wie beschrieben wird, reagiert das Gateway-Programm auf eingehende Web-Browseranforderungen durch Stellen einer Nachricht in die Eingangswarteschlange einer Serveranwendung. Wenn die Nachricht erstmalig in die Warteschlange gestellt wird, startet das Gateway-Programm einen Ablaufzeitgeber, 370, und wartet auf eine Antwort von der Serveranwendung. Falls der Zeitgeber abläuft, bevor irgendeine Antwort vom Anwendungsprogramm empfangen worden ist, erzeugt das Gateway-Programm eine HTML-Seite, 390, um den Benutzer über das Ablaufen zu benachrichtigen, 400.
  • Folglich ist das Gateway-Programm so konfiguriert, dass es selbst eine Antwort an den Browser überträgt, falls es vor dem Verstreichen einer von der Systemverwaltungseinrichtung definierten Zeitspanne keine Antwort von der Anwendung empfängt. Die einzustellende maximale Zeitspanne einer Clientsuspendierung hängt von der jeweiligen Anwendung ab (10 Sekunden oder 1 Sekunde kann geeignet sein). Der Hauptzweck dieser Antwort besteht darin, den Benutzer oder den kommunizierenden Prozess im Clientsystem mit Daten zu versehen, um eine Entscheidung zu ermöglichen, ob die aktuelle Kommunikationssitzung aufrechterhalten werden muss, um auf eine Antwort zu warten, oder ob die Sitzung beendet wird (jedoch unter Aufbewahrung von der Sitzung zugeordneten Daten) und andere Verarbeitungselemente fortgesetzt werden. Diese Antwort an den Client kann einfach eine Eingabeaufforderung an einen Endbenutzer sein (beispielsweise das Einleiten einer Bildschirmnachricht bezüglich des Zeitgeberablaufs), jedoch zeigt eine vom Zeitgeber eingeleitete Antwort an den Browser gemäß der bevorzugten Ausführungsform der Erfindung auch an, ob die Anforderung von der Zielmaschine empfangen wurde und ob die Anwendung die Anforderung gelesen hat. Es sind Nachrichtenwarteschlangen-Verwaltungsprogramme bekannt, die eine Meldung "Bei Eingang bestätigen" (Confirm On Arrival) und "Bei Zustellung bestätigen" (Confirm On Delivery) bereitstellen. Das Gateway-Programm gemäß der bevorzugten Ausführungsform ist für die Verwendung der verfügbaren Meldungseinrichtungen geeignet, um seine Benachrichtigung hinsichtlich des Zeitgeberablaufs so zu erstellen, dass diese alle verfügbaren Daten bezüglich des Fortschritts der Kommunikation für diese Sitzung enthalten kann.
  • Eine Realisierung der vorläufigen Antwort als sofortige Bestätigung des Empfangs der Anforderung vom Clientsystem durch den Gateway-Computer liegt im Anwendungsbereich der vorliegenden Erfindung. Diese Bestätigung beendet die aktuelle synchrone Sitzung, enthält jedoch den Sitzungskennzeichner und ermöglicht so dem Client das erneute Aufsuchen der Interaktion zu einem späteren Zeitpunkt. Obwohl der Clientprozess in diesem Fall nicht suspendiert wird, um auf eine Antwort von einem asynchron angeforderten Programm zu warten, bleibt die Möglichkeit von Verzögerungen zwischen der Anforderung und der Bestätigung des Empfangs aufgrund von Problemen mit den Kommunikationsverbindungen oder den kommunizierenden Systemen selbst. Hier kann eine Client-Zeitlimitperiode verwendet werden, um den Vorgang zu automatisieren, wenn die Clientanforderung verlassen werden muss, falls keine Bestätigung empfangen wird, bei bestimmten Anwendungen kann die Entscheidung zum Verlassen einer Clientanforderung jedoch Endbenutzern überlassen werden, wie es Benutzern von bestehender Web-Browsersoftware vertraut ist.
  • Im Anwendungsbereich der vorliegenden Erfindung liegt außerdem die Bereitstellung eines Prozesses im Gateway-Programm, der auf einen empfangenen Anforderungs-"Typ" von einem Clientsystem anspricht, um festzustellen, ob eine sofortige vorläufige Antwort benötigt wird oder eine eingestellte Suspendierungs- oder Zeitlimitperiode mit dem Ziel der Bereitstellung einer vollständigen Antwort innerhalb dieser Zeitspanne verwendet werden muss, falls eine solche verfügbar ist. Gemäß einer bestimmten Ausführungsform der Erfindung weist das Gateway-Programm einen konfigurierbaren Zeitlimitwert (timeout value), den es standardmäßig verwendet. Dieser Wert wird in einer Konfigurationsdatei im Serversystem zwischengespeichert, in dem das Gateway-Programm installiert ist, und kann anschließend von einer Systemverwaltungseinrichtung geändert werden. Ein zusätzlicher Parameter kann in HTML-Formularanforderungen aufgenommen werden (ähnlich den Parametern QName und QMName), der diesen Standard überschreibt. Unter Verwendung von Beispielen, auf die an früherer Stelle Bezug genommen wurde, wird im Falle der Entwicklung eines HTML-Formulars zum Übermitteln einer Warenbestellung, die eine schnelle Antwort zur Bestätigung des Empfangs der Anforderung erfordert, ein niedriger Zeitlimitwert im Anforderungsformular codiert; wohingegen im Falle einer Anforderung von Daten zu einem Kontostand, wo keine solche schnelle Bestätigung erforderlich ist, ein höherer Wert codiert würde (vielleicht ein Wert, der der längsten Warteperiode entspricht, die Benutzer erwartungsgemäß tolerieren).
  • Nachrichtenübertragungsprotokolle zum Bereitstellen einer gesicherten Zustellung von Nachrichten werden in der internationalen Patentanmeldung WO 95/10805 der UK-Patentanmeldung mit der Veröffentlichungsnummer GB 2311443 beschrieben. Obwohl eine grundlegende Netzunterstützung normalerweise eine zuverlässige Zustellung von Paketen zwischen Maschinen sicherstellt, kann eine gesicherte Zustellung über ein unzuverlässiges Kommunikationsmedium normalerweise nicht bereitgestellt werden. Um zu garantieren, dass Daten nur einmal übertragen werden und dass Kommunikationsvorgänge nach einem größeren Maschinen- oder Netzfehler ordnungsgemäß neugestartet und wiederhergestellt werden, ist mehr als die grundlegende Netzunterstützung zur Paketzustellung erforderlich. Insbesondere müssen beide Partner in einem System mit gesicherter Zustellung in Erinnerung behalten, welche Daten erfolgreich übertragen und "festgeschrieben" ('hardened') wurden. Eine Festschreibung (Hardening) ist der Prozess des Schreibens von Daten in ein Speichermedium, beispielsweise eine Festplatte, und des Sicherstellens, dass sie auch im Falle eines Hardwarefehlers wiederhergestellt werden können. Die Bereitstellung einer Ressourcenwiederherstellung in einem Nachrichtenwarteschlangenbildungssystem wird ausführlich zwischen den Seiten 209 und 217 des Buches "Messaging and Queuing Using the MQI" von B. Blakely, H. Harris und R. Lewis, McGraw-Hill, 1994, beschrieben.
  • Eine kommerzielle Anwendung kann mehrere Serveranwendungen beinhalten, deren Transaktionsaktivitäten koordiniert werden müssen. Dieses Problem wird durch das Nachrichtenwarteschlangen-Verwaltungsprogramm im Serversystem gelöst. Das Gateway-Programm überträgt eine Nachricht an ein einziges steuerndes Anwendungsprogramm mit Nachrichtenwarteschlangenbildung, das diese sodann bei Bedarf in gesonderte Anforderungen an die einzelnen Serveranwendungen zerlegt. Diese Nachrichten können übertragen und unter der Transaktionssteuerung durch das Nachrichtenwarteschlangen-Verwaltungsprogramm wieder zusammengesetzt werden. Nachrichtenübermittlungsprogramme mit Einrichtungen zur Bereitstellung einer solchen Transaktionssteuerung sind nach dem Stand der Technik bekannt (beispielsweise die Nachrichtenübermittlungsprogramme MQSeries von IBM). Die Ausgestaltung des Gateway-Programms ermöglicht das Hinzufügen von zusätzlichen Serveranwendungen, um mit der steigenden Nachfrage Schritt zu halten – d. h., die Lösung gemäß der bevorzugten Ausführungsform der Erfindung ist skalierbar. Dies wird erreicht, indem das Gateway-Programm den Sitzungskennzeichner in einen Nachrichtendeskriptorteil von jeder der asynchronen Nachrichten aufnimmt. (Der Nachrichtendeskriptor umfasst Daten, die die Eigenschaften der Nachricht definieren, und wird vom Nachrichtenwarteschlangenbildungsdienst verwendet, um zu entscheiden, wie die Nachricht verarbeitet werden muss. Die Nachrichten selbst umfassen zwei verschiedene Komponenten – einen Anwendungsdatenteil und einen Nachrichtenvorsatzteil, der die Nachrichtendeskriptordaten enthält, die den Anwendungsdaten untergeordnet sind.) Dadurch wird es möglich, dass mehrere Serveranwendungsprogramme in Bezug auf eine Arbeitswarteschlange parallel ausgeführt werden. Falls die Anwendung zwischen aufeinanderfolgenden Interaktionen eigene Kontextdaten speichern muss, kann sie Nachrichten abrufen, die mit ihrem Sitzungskennzeichner übereinstimmen. Falls sie keine Kontextdaten speichern muss, können Exemplare der Serveranwendung die erste Nachricht, die sie finden, abrufen und verarbeiten.
  • Die Erfindung gemäß der bevorzugten Ausführungsform ermöglicht folglich die Verbindung des WWW-Internetdienstes mit einem universalen Nachrichtenübermittlungssystem, ohne eine Änderung an vorhandenen Web-Browsern erforderlich zu machen, jedoch ist die Erfindung nicht auf diese Ausführung begrenzt. Die Erfindung kann so ausgeführt werden, dass sie eine Verbindung zwischen zwei beliebigen Datenverarbeitungssystemen bereitstellt, wobei ein in einem System installiertes Computerprogramm eine synchrone Kommunikation benötigt, wohingegen ein im anderen System installiertes Programm eine asynchrone Form der Kommunikation benötigt. Außerdem stellt die Erfindung gemäß der bevorzugten Ausführungsform in Verbindung mit einer Nachrichtenübermittlungssoftware, beispielsweise den MQSeries-Produkten von IBM, eine Brücke zu Netzen bereit, die das Internetprotokoll (IP) nicht unterstützen, da MQSeries die Übertragungsprotokolle TCP/IP, APPC und NetBios unterstützt. Folglich ermöglicht die Erfindung Kommunikationsvorgänge zwischen Anwendungen in IP- und Nicht-IP-Netzen.
  • Die oben beschriebene bevorzugte Ausführungsform enthält ein gesondert installierbares Gateway-Programm in Verbindung mit einem Nachrichtenübermittlungssystem. Eine alternative Ausführungsform realisiert den Gateway-Computer als eine interne Komponente eines Warteschlangenverwaltungsprogramms. Der Sitzungskennzeichner und die Sitzungsstatustabelle können je nach Wunsch als eine Nachrichtenwarteschlange unter der Steuerung der Warteschlangenverwaltungseinrichtung realisiert werden. Die bereits in Warteschlangenverwaltungseinrichtungen von MQSeries realisierten Kennzeichner MessageID und CorelID können als geeignete Suchinformationen beim Abfragen der Warteschlange verwendet werden. Es sei jedoch darauf hingewiesen, dass eine Aktualisierung von Einträgen, die in einer von der Warteschlangenverwaltungseinrichtung gesteuerten Warteschlange zwischengespeichert werden, die Schritte des Entfernens der Einträge aus der Warteschlange, der Änderns und erneuten Stellens in die Warteschlange erforderlich macht, da keine Voraussetzungen für eine Änderung von Einträgen geschaffen werden, während sie in einer von der Warteschlangenverwaltungseinrichtung gesteuerten Warteschlange verbleiben. Das Aktualisieren eines Eintrags in einer im gemeinsam genutzten Speicher zwischengespeicherten Tabelle kann ein einfaches Überschreiben des früheren Eintrags zur Folge haben. Obwohl es Vorteile bei der Verwendung der Einrichtungen des Nachrichtenwarteschlangen-Verwaltungsprogramms hinsichtlich des Vorgangs "Auf Ereignis (d. h. Antwort) oder Zeitlimitüberschreitung warten" ('wait for event (i. e. reply) or timeout' operation) gibt, wird diese Funktion normalerweise von Betriebssystemen mit Mehrfachprogrammbetrieb (multi-threaded operating systems) bereitgestellt, und ein Nachrichtenwarteschlangen-Verwaltungsprogramm kann die Funktion des zugrundeliegenden Betriebssystems in der Praxis nutzen. Alternative Ausführungsformen können eine Einleitung des Gateway-Programms jedes Mal verwenden, wenn eine neue Antwortnachricht erstmalig in die Antwortwarteschlange gestellt wird, jedoch ist dies nicht die bevorzugte Ausführung, da eine Einleitung nicht erwünscht ist, wenn keine aktuelle aktive Sitzung mit dem Clientsystem besteht. Weitere alternative Ausführungsformen der Erfindung können ein periodisches Abfragen der Antwortwarteschlange auf neue Antwortnachrichten anstelle des Aufrufens eines Vorgangs "Abrufen mit Wartezeit" realisieren.
  • In der oben beschriebenen bevorzugten Ausführungsform werden Sitzungskennzeichner automatisch im Cachespeicher eines Web-Browsers (als eingebettete Felder in HTML-Seiten) gespeichert. Alternativ könnten die Sitzungskennzeichner jedoch einem Endbenutzer auf einem Bildschirm angezeigt werden, und der Benutzer muss möglicherweise den Sitzungskennzeichner eingeben, wenn er eine nachfolgende zugeordnete Anforderung macht. In Ausführungsformen, in denen eine vorläufige Antwort an das Clientsystem nach einer Zeitlimitüberschreitung ohne automatische Speicherung oder automatische Aufnahme in künftige Anforderungen lediglich dem Benutzer angezeigt wird, entscheidet der Endbenutzer, ob die aktuelle Sitzung beendet werden muss, wobei der Kennzeichner für nachfolgende Wiederholungen einer Anforderung gespeichert wird. Die oben beschriebene beispielhafte Ausführungsform weist außerdem das Merkmal von Sitzungskennzeichnern und Sitzungsstatusdaten auf, die lediglich in bestimmte der an den Browser rückübertragenen Kommunikationsvorgängen aufgenommen werden, eine eindeutig im Anwendungsbereich der Erfindung gemäß der Definition in angehängten Ansprüchen liegende Alternative beinhaltet jedoch zumindest die Aufnahme der Sitzungskennzeichnerdaten in alle Antworten.
  • Ein Merkmal der oben beschriebenen bevorzugten Ausführungsform ist die Aufbewahrung von Statusdaten durch das Gateway-Programm; eine alternative Ausführungsform der Erfindung überlässt den Anwendungsprogrammen die Handhabung aller Folgesteuerungsprobleme, so dass das Gateway-Programm nicht an der Verwaltung von Sitzungsstatusdaten beteiligt ist.

Claims (11)

  1. Datenübertragungsserversystem für ein Datenübertragungsnetz, wobei das Serversystem Einrichtungen zum Unterstützen einer synchronen Kommunikation zwischen dem Serversystem und einem Clientsystem des Netzes aufweist und wobei das Serversystem außerdem Einrichtungen zum Unterstützen einer asynchronen Kommunikation mit Programmen im Serversystem oder in einem anderen System des Netzes aufweist, wobei das Serversystem Folgendes enthält: ein Mittel, das auf eine Anforderung vom Clientsystem in einer asynchronen Kommunikationssitzung zwischen dem Clientsystem und dem Serversystem anspricht, um eine Anforderung an ein Programm im Serversystem oder in einem anderen System des Netzes als asynchrone Kommunikation zu übertragen, wobei die asynchrone Anforderung einen vom Serversystem zugeordneten Sitzungskennzeichner enthält; ein Mittel zum Starten eines Zeitgebers auf die Anforderung vom Clientsystem hin; ein Mittel, das auf den Empfang einer Antwort auf die asynchrone Kommunikation anspricht, um die Antwort unter Verwendung des Sitzungskennzeichners der Anforderung vom Clientsystem zuzuordnen, um zu ermöglichen, dass eine Antwort an das Clientsystem übertragen wird; ein Mittel, das auf die Antwort des Programms auf die asynchrone Kommunikation anspricht, die Sitzungsstatusdaten beinhaltet, die eine serielle Anordnung von Interaktionen ermöglichen, um Sitzungsstatusdaten in die an das Clientsystem übertragene Antwort aufzunehmen; ein Mittel zum Erzeugen einer vorläufigen Antwort vor dem Empfang einer Antwort auf die asynchrone Kommunikation, wobei die vorläufige Antwort den Sitzungskennzeichner enthält; ein Mittel zum Übertragen der vorläufigen Antwort an das Clientsystem in der synchronen Kommunikationssitzung, falls eine vorgegebene Zeitspanne verstreicht, bevor eine Antwort auf die asynchrone Anforderung vom Serversystem empfangen wird.
  2. Datenübertragungssystem nach Anspruch 1, das einen Prozess im Serversystem zum Zuordnen des Sitzungskennzeichners zur Anforderung vom Clientsystem enthält und wobei der Sitzungskennzeichner in die asynchrone Anforderung aufgenommen wird, die er an das Programm überträgt, wobei das Serversystem ein Mittel enthält, das auf den Empfang einer Antwort vom Programm auf die asynchrone Anforderung anspricht, wobei die Antwort den Sitzungskennzeichner enthält, um den Sitzungskennzeichner zum Zuordnen der Antwort vom Programm zur Anforderung vom Clientsystem zu verwenden, und zum Aufnehmen des Sitzungskennzeichners in eine an das Clientsystem übertragene Antwort.
  3. Datenübertragungssystem nach Anspruch 2, wobei im Serversystem eine Internet-Serversoftware für das World Wide Web (WWW) installiert ist, um auf Anforderungen von der in einem Clientsystem installierten WWW-Browser-Software zu antworten, wobei das Serversystem ein Mittel zum Einbetten der Sitzungskennzeichnerdaten in HTML-Seiten enthält, die in Antworten enthalten sind, die an ein Clientsystem übertragen werden.
  4. Datenübertragungssystem nach Anspruch 3, wobei das Serversystem ein Mittel enthält, das auf in der Antwort des Programms auf die asynchrone Anforderung enthaltene Sitzungsstatusdaten anspricht, um eines oder mehrere HTML-Formulare zum Ausfüllen durch einen Endbenutzer in die HTML-Seiten aufzunehmen, wobei der Sitzungskennzeichner in die Formulare eingebettet ist.
  5. Datenübertragungssystem nach Anspruch 3 oder Anspruch 4, wobei das Serversystem ein Mittel enthält, das auf die in der Antwort des Programms auf die asynchrone Anforderung enthaltenen Sitzungsstatusdaten anspricht, um Sitzungsstatusdaten in die an das Clientsystem übertragenen HTML-Seiten einzubetten.
  6. Datenübertragungssystem nach Anspruch 3 oder Anspruch 4, das ein Mittel zum Umwandeln von HTML-Daten einer Clientanforderung in ein vom Programm interpretierbares Format und zum Umwandeln von in einer Antwort vom Programm enthaltenen Daten in HTML zur Aufnahme in die Antwort an das Clientsystem enthält.
  7. Datenübertragungssystem nach Anspruch 1, wobei das Serversystem eine Eingangsbestätigung-(COA-) und/oder Lieferbestätigungs-(COD-)Meldung ausführt und auf einen Empfang einer COA- oder COD-Meldung vor dem Verstreichen der vorgegebenen Zeitspanne anspricht, um die COA- oder COD-Meldung in die nach dem Verstreichen der vorgegebenen Zeitspanne an das Clientsystem übertragene Kommunikation aufzunehmen.
  8. Datenübertragungssystem nach Anspruch 1, wobei das Serversystem ein Mittel enthält, das auf eine in der Antwort des Programms auf die asynchrone Anforderung enthaltene Kennzeichnung des Sitzungsstatus anspricht, um festzustellen, ob Sitzungskennzeichnungsdaten in die Antwort an das Clientsystem aufgenommen werden müssen.
  9. Datenübertragungssystem nach Anspruch 1, wobei das Mittel zum Aufnehmen von Sitzungsstatusdaten in eine Antwort an das Clientsystem ein Mittel enthält, um in Abhängigkeit vom Sitzungsstatus festzustellen, ob die Sitzungsstatusdaten aufgenommen werden müssen.
  10. Datenübertragungssystem nach Anspruch 1, das ein Mittel enthält, das auf eine Anforderung vom Clientsystem anspricht, um festzustellen, ob eine Bestätigung des Empfangs als vorläufige Antwort an das Clientsystem übertragen werden muss oder ob der Zeitgeber gestartet werden muss.
  11. Verfahren zur Datenübertragung zwischen einem ersten Computerprogramm in einem ersten System eines Kommunikationsnetzes und einem dritten Computerprogramm, auf das über ein zweites Computerprogramm in einem zweiten System des Netzes zugegriffen werden kann, wobei das Verfahren die folgenden Schritte enthält: Übertragen einer ersten Anforderung vom ersten Programm an das zweite System in einer synchronen Kommunikationssitzung; auf den Empfang der synchronen Anforderung vom ersten Programm durch das zweite System hin Übertragen einer Anforderung an das dritte Programm als asynchrone Kommunikation, wobei die asynchrone Anforderung einen von einem zweiten Programm im zweiten System zugeordneten Sitzungskennzeichner enthält; und Starten eines Zeitgebers; auf den Empfang einer Antwort auf die asynchrone Kommunikation durch das zweite System hin Zuordnen der Antwort zur Anforderung vom ersten Programm unter Verwendung des Sitzungskennzeichners, um die Übertragung einer Antwort an das erste Programm zu ermöglichen, und auf die Antwort auf die asynchrone Kommunikation hin, die Sitzungsstatusdaten enthält, die eine serielle Anordnung von Interaktionen ermöglichen, Aufnehmen von Sitzungsstatusdaten in die Antwort an das erste Programm; Erzeugen einer vorläufigen Antwort vor dem Empfang einer Antwort auf die asynchrone Kommunikation, wobei die vorläufige Antwort den Sitzungskennzeichner enthält; und Übertragen der vorläufigen Antwort an das erste Programm in der synchronen Kommunikationssitzung, falls eine vorgegebene Zeitspanne verstreicht, bevor vom zweiten System eine Antwort auf die synchrone Anforderung empfangen wird.
DE69731318T 1996-05-24 1997-05-19 Herstellen von kommunikationsverbindungen in einem computernetzwerk Expired - Lifetime DE69731318T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB9610898A GB2313524A (en) 1996-05-24 1996-05-24 Providing communications links in a computer network
GB9610898 1996-05-24
PCT/GB1997/001384 WO1997045798A1 (en) 1996-05-24 1997-05-19 Providing communications links in a computer network

Publications (2)

Publication Number Publication Date
DE69731318D1 DE69731318D1 (de) 2004-11-25
DE69731318T2 true DE69731318T2 (de) 2006-03-09

Family

ID=10794249

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69731318T Expired - Lifetime DE69731318T2 (de) 1996-05-24 1997-05-19 Herstellen von kommunikationsverbindungen in einem computernetzwerk

Country Status (13)

Country Link
US (1) US6336135B1 (de)
EP (1) EP0978056B1 (de)
JP (1) JP3578221B2 (de)
KR (1) KR100275403B1 (de)
CN (1) CN1117333C (de)
CZ (1) CZ381198A3 (de)
DE (1) DE69731318T2 (de)
ES (1) ES2227692T3 (de)
GB (1) GB2313524A (de)
HU (1) HUP9902190A3 (de)
MY (1) MY123071A (de)
PL (1) PL329935A1 (de)
WO (1) WO1997045798A1 (de)

Families Citing this family (201)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8073695B1 (en) 1992-12-09 2011-12-06 Adrea, LLC Electronic book with voice emulation features
US9053640B1 (en) 1993-12-02 2015-06-09 Adrea, LLC Interactive electronic book
US20040264402A9 (en) * 1995-06-01 2004-12-30 Padcom. Inc. Port routing functionality
US6418324B1 (en) * 1995-06-01 2002-07-09 Padcom, Incorporated Apparatus and method for transparent wireless communication between a remote device and host system
GB2313524A (en) 1996-05-24 1997-11-26 Ibm Providing communications links in a computer network
US6636733B1 (en) 1997-09-19 2003-10-21 Thompson Trust Wireless messaging method
US6253061B1 (en) * 1997-09-19 2001-06-26 Richard J. Helferich Systems and methods for delivering information to a transmitting and receiving device
US7346689B1 (en) * 1998-04-20 2008-03-18 Sun Microsystems, Inc. Computer architecture having a stateless human interface device and methods of use
JP2000036822A (ja) * 1998-07-16 2000-02-02 Nec Corp コンピュータネットワーク及びサーバ
US8060656B2 (en) * 1998-10-09 2011-11-15 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US7778260B2 (en) * 1998-10-09 2010-08-17 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US7293107B1 (en) * 1998-10-09 2007-11-06 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US8078727B2 (en) 1998-10-09 2011-12-13 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US7136645B2 (en) * 1998-10-09 2006-11-14 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US6546425B1 (en) * 1998-10-09 2003-04-08 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US8074055B1 (en) 1999-01-28 2011-12-06 Ati Technologies Ulc Altering data storage conventions of a processor when execution flows from first architecture code to second architecture code
US8121828B2 (en) * 1999-01-28 2012-02-21 Ati Technologies Ulc Detecting conditions for transfer of execution from one computer instruction stream to another and executing transfer on satisfaction of the conditions
US6763452B1 (en) 1999-01-28 2004-07-13 Ati International Srl Modifying program execution based on profiling
US7111290B1 (en) 1999-01-28 2006-09-19 Ati International Srl Profiling program execution to identify frequently-executed portions and to assist binary translation
US8127121B2 (en) * 1999-01-28 2012-02-28 Ati Technologies Ulc Apparatus for executing programs for a first computer architechture on a computer of a second architechture
US6954923B1 (en) 1999-01-28 2005-10-11 Ati International Srl Recording classification of instructions executed by a computer
US7941647B2 (en) 1999-01-28 2011-05-10 Ati Technologies Ulc Computer for executing two instruction sets and adds a macroinstruction end marker for performing iterations after loop termination
US6434605B1 (en) * 1999-04-05 2002-08-13 Worldcom, Inc. Automatic detection and recovery for problems arising with interconnected queue managers
US6779107B1 (en) * 1999-05-28 2004-08-17 Ati International Srl Computer execution by opportunistic adaptation
US7882247B2 (en) 1999-06-11 2011-02-01 Netmotion Wireless, Inc. Method and apparatus for providing secure connectivity in mobile and other intermittent computing environments
US6976077B1 (en) * 1999-07-06 2005-12-13 Microsoft Corporation Automatic and transparent synchronization of server-side state information with a client application
US6895584B1 (en) 1999-09-24 2005-05-17 Sun Microsystems, Inc. Mechanism for evaluating requests prior to disposition in a multi-threaded environment
EP1224568A4 (de) * 1999-09-24 2006-11-08 Sun Microsystems Inc Mechanism um sitzungsinformation die über eine vielzahl von prozessen zu verteilen ist, zu ermöglichen
US6701367B1 (en) * 1999-09-24 2004-03-02 Sun Microsystems, Inc. Mechanism for enabling customized session managers to interact with a network server
US6766349B1 (en) 1999-09-24 2004-07-20 Sun Microsystems, Inc. Mechanism for obtaining a thread from, and returning a thread to, a thread pool without attaching and detaching
US6587827B1 (en) * 1999-10-22 2003-07-01 Hewlett-Packard Development Company, L.P. Order fulfillment processing system
US6871203B1 (en) * 1999-10-29 2005-03-22 International Business Machines Corporation Data processing system
US7107325B1 (en) 1999-11-15 2006-09-12 Insweb Corporation System and method for optimizing and processing electronic pages in multiple languages
US20010034782A1 (en) * 2000-01-14 2001-10-25 Ian Kinkade Efficient web based proxy message method and apparatus for message queuing middleware resident on a server computer
US20060235945A1 (en) * 2000-01-14 2006-10-19 Frietas Nathaniel X Software architecture for wireless data and method of operation thereof
US8756342B1 (en) 2000-02-07 2014-06-17 Parallel Networks, Llc Method and apparatus for content synchronization
US7454457B1 (en) 2000-02-07 2008-11-18 Parallel Networks, Llc Method and apparatus for dynamic data flow control using prioritization of data requests
JP2001216262A (ja) * 2000-02-07 2001-08-10 Fujitsu Ltd サーバ
IL135150A0 (en) * 2000-03-17 2001-05-20 Avner Geller A method and a system for secured identification of user's identity
US20030070074A1 (en) * 2000-03-17 2003-04-10 Avner Geller Method and system for authentication
US20040105122A1 (en) * 2000-03-20 2004-06-03 Schaeffer Richard J. Printer control and document management system
KR100397495B1 (ko) * 2000-06-24 2003-09-13 엘지전자 주식회사 실시간처리 운영체제의 주제어부와 부제어부간의접속해제를 안정화하기 위한 제어방법
US7117239B1 (en) 2000-07-28 2006-10-03 Axeda Corporation Reporting the state of an apparatus to a remote computer
EP1334587A1 (de) * 2000-08-31 2003-08-13 Padcom Inc. Verfahren und vorrichtung zum routen von daten über mehrere drahtlose netzwerke
US8108543B2 (en) 2000-09-22 2012-01-31 Axeda Corporation Retrieving data from a server
US6810430B1 (en) * 2000-09-29 2004-10-26 Abb Automation Inc. Network communications coupler
US7830399B2 (en) * 2000-10-04 2010-11-09 Shutterfly, Inc. System and method for manipulating digital images
WO2002054263A1 (fr) * 2000-12-28 2002-07-11 Future System Consulting Corp. Systeme de structure
US6862628B2 (en) * 2001-01-05 2005-03-01 Microsoft Corporation Enhancing application performance in dynamic networks
US7788399B2 (en) * 2001-03-26 2010-08-31 Salesforce.Com, Inc. System and method for mapping of services
US9948644B2 (en) 2001-03-26 2018-04-17 Salesforce.Com, Inc. Routing messages between applications
US7516191B2 (en) * 2001-03-26 2009-04-07 Salesforce.Com, Inc. System and method for invocation of services
US7689711B2 (en) * 2001-03-26 2010-03-30 Salesforce.Com, Inc. System and method for routing messages between applications
US7447802B2 (en) * 2001-03-30 2008-11-04 Oracle International Corporation Method and system for maintaining a configuration state
US7249195B2 (en) 2001-03-30 2007-07-24 Minor Ventures, Llc Apparatus and methods for correlating messages sent between services
US20020188666A1 (en) * 2001-05-23 2002-12-12 Lemon Michael J. Lightweight dynamic service conversation controller
US20050198379A1 (en) * 2001-06-13 2005-09-08 Citrix Systems, Inc. Automatically reconnecting a client across reliable and persistent communication sessions
US7562146B2 (en) * 2003-10-10 2009-07-14 Citrix Systems, Inc. Encapsulating protocol for session persistence and reliability
US7801941B2 (en) * 2001-07-09 2010-09-21 Palm, Inc. Apparatus and method for exchanging data between two devices
US7668535B2 (en) * 2001-07-09 2010-02-23 Palm, Inc. Notification infrastructure for sending device-specific wireless notifications
US20030037102A1 (en) * 2001-08-14 2003-02-20 Philippe Eckert Message broker
US7644171B2 (en) * 2001-09-12 2010-01-05 Netmotion Wireless, Inc. Mobile networking system and method using IPv4 and IPv6
US6907451B1 (en) * 2001-09-29 2005-06-14 Siebel Systems, Inc. Method, apparatus, and system for immediate posting of changes in a client server environment
US7461119B2 (en) * 2001-09-29 2008-12-02 Siebel Systems, Inc. Method, apparatus, and system for managing status of requests in a client server environment
US7885996B2 (en) * 2001-09-29 2011-02-08 Siebel Systems, Inc. Method, apparatus, and system for implementing notifications in a framework to support web-based applications
US8359335B2 (en) 2001-09-29 2013-01-22 Siebel Systems, Inc. Computing system and method to implicitly commit unsaved data for a world wide web application
US7146617B2 (en) 2001-09-29 2006-12-05 Siebel Systems, Inc. Method, apparatus, and system for implementing view caching in a framework to support web-based applications
US7203948B2 (en) * 2001-09-29 2007-04-10 Siebel Systems, Inc. Method, apparatus, and system for implementing caching of view custom options in a framework to support web-based applications
US7870492B2 (en) 2001-10-02 2011-01-11 Siebel Systems, Inc. Method, apparatus, and system for managing commands in a client server environment
US7003570B2 (en) * 2001-10-05 2006-02-21 Bea Systems, Inc. System for integrating java servlets with asynchronous messages
US20030101291A1 (en) * 2001-11-23 2003-05-29 Mussack Christopher Joseph Application programming interface for provision of DICOM services
DE10162986B4 (de) * 2001-12-20 2004-01-15 Siemens Ag Anbindung von Netzwerken mit unterschiedlichen Protokollen
US20030126109A1 (en) * 2002-01-02 2003-07-03 Tanya Couch Method and system for converting message data into relational table format
US6950959B2 (en) * 2002-02-12 2005-09-27 Fulcrum Microystems Inc. Techniques for facilitating conversion between asynchronous and synchronous domains
US7444410B1 (en) * 2002-02-15 2008-10-28 Oracle International Corporation Application platform execution environment
US7984157B2 (en) * 2002-02-26 2011-07-19 Citrix Systems, Inc. Persistent and reliable session securely traversing network components using an encapsulating protocol
US7661129B2 (en) * 2002-02-26 2010-02-09 Citrix Systems, Inc. Secure traversal of network components
US7558196B2 (en) * 2002-04-08 2009-07-07 Alcatel-Lucent Usa Inc. Method and apparatus for system resource management in a communications system
WO2003102778A2 (en) * 2002-05-31 2003-12-11 International Business Machines Corporation System and method for accessing different types of back end data stores
JP4225743B2 (ja) * 2002-07-04 2009-02-18 株式会社東芝 無線端末及び通信制御方法
CN100426812C (zh) * 2002-08-15 2008-10-15 中兴通讯股份有限公司 一种基于分组数据业务流程的仿真系统
US7243124B1 (en) 2002-09-06 2007-07-10 Oracle International Corporation Architecture for general purpose near real-time business intelligence system with client devices and methods therefor
US8255454B2 (en) * 2002-09-06 2012-08-28 Oracle International Corporation Method and apparatus for a multiplexed active data window in a near real-time business intelligence system
US7412481B2 (en) * 2002-09-16 2008-08-12 Oracle International Corporation Method and apparatus for distributed rule evaluation in a near real-time business intelligence system
US7899879B2 (en) 2002-09-06 2011-03-01 Oracle International Corporation Method and apparatus for a report cache in a near real-time business intelligence system
US8165993B2 (en) * 2002-09-06 2012-04-24 Oracle International Corporation Business intelligence system with interface that provides for immediate user action
US7945846B2 (en) 2002-09-06 2011-05-17 Oracle International Corporation Application-specific personalization for data display
US7272660B1 (en) 2002-09-06 2007-09-18 Oracle International Corporation Architecture for general purpose near real-time business intelligence system and methods therefor
US7912899B2 (en) * 2002-09-06 2011-03-22 Oracle International Corporation Method for selectively sending a notification to an instant messaging device
US7941542B2 (en) * 2002-09-06 2011-05-10 Oracle International Corporation Methods and apparatus for maintaining application execution over an intermittent network connection
US7454423B2 (en) 2002-09-06 2008-11-18 Oracle International Corporation Enterprise link for a software database
US7426059B2 (en) 2002-09-16 2008-09-16 Oracle International Corporation Data presentation methods and apparatus to facilitate printing and reviewing
US7401158B2 (en) * 2002-09-16 2008-07-15 Oracle International Corporation Apparatus and method for instant messaging collaboration
US7668917B2 (en) * 2002-09-16 2010-02-23 Oracle International Corporation Method and apparatus for ensuring accountability in the examination of a set of data elements by a user
US7305554B2 (en) * 2002-12-16 2007-12-04 Alcatel Canada Inc. Dynamic acquisition of state during security system reconfiguration
JP3880513B2 (ja) 2002-12-16 2007-02-14 インターナショナル・ビジネス・マシーンズ・コーポレーション 中継処理装置、制御方法、プログラム、記録媒体、及び端末制御サーバ
US7480657B1 (en) * 2003-01-06 2009-01-20 Cisco Technology, Inc. Caching information for multiple service applications
US7769881B2 (en) * 2003-01-24 2010-08-03 Hitachi, Ltd. Method and apparatus for peer-to peer access
US8359393B2 (en) 2003-02-13 2013-01-22 Transunion Interactive, Inc. Methods, apparatuses and systems facilitating seamless, virtual integration of online membership models and services
US7337468B2 (en) * 2003-02-13 2008-02-26 Truelink, Inc. Methods, apparatuses and systems facilitating seamless, virtual integration of online membership models and services
US7966418B2 (en) * 2003-02-21 2011-06-21 Axeda Corporation Establishing a virtual tunnel between two computer programs
US20040170181A1 (en) * 2003-02-27 2004-09-02 Padcom, Inc. Prioritized alternate port routing
JP4305004B2 (ja) * 2003-02-28 2009-07-29 ソニー株式会社 情報処理装置、およびコンテンツ情報処理方法、並びにコンピュータ・プログラム
US7904823B2 (en) * 2003-03-17 2011-03-08 Oracle International Corporation Transparent windows methods and apparatus therefor
KR100925198B1 (ko) * 2003-03-17 2009-11-06 엘지전자 주식회사 대화형 디스크 플레이어간의 사용자 메시지 교환방법
JP2004295262A (ja) * 2003-03-25 2004-10-21 Toudai Tlo Ltd スクリプトの実行方法およびサーバ・クライアントシステム
US7676580B2 (en) * 2003-03-27 2010-03-09 Microsoft Corporation Message delivery with configurable assurances and features between two endpoints
US7113964B1 (en) 2003-06-05 2006-09-26 Iteration Software, Inc. Method and apparatus for archiving data in a relational database system
US7548989B2 (en) * 2003-07-01 2009-06-16 International Business Machines Corporation Method and system for maintaining consistency during multi-threaded processing of LDIF data
US8429249B2 (en) * 2003-07-11 2013-04-23 Ca, Inc. System and method for configuring servlet-based components as dynamic content components
US7349968B2 (en) * 2003-07-31 2008-03-25 International Business Machines Corporation Method, system and program product for asynchronously processing requests
US7380009B2 (en) * 2003-08-07 2008-05-27 Interantional Business Machines, Incorporated Method, system and program product for delayed disconnection of a client from a server
CA2477902C (en) * 2003-08-18 2010-07-06 Bill F. Campbell Web server system and method
GB2405228B8 (en) * 2003-08-19 2007-09-13 Ibm A method, apparatus and computer program for verifying the order of a queue of work items
US6925928B2 (en) * 2003-09-18 2005-08-09 Anthony Fox Trash compactor for fast food restaurant waste
US20050080903A1 (en) * 2003-09-30 2005-04-14 Moshe Valenci Method, system, and program for maintaining a link between two network entities
US20050080759A1 (en) * 2003-10-08 2005-04-14 International Business Machines Corporation Transparent interface to a messaging system from a database engine
US8453196B2 (en) * 2003-10-14 2013-05-28 Salesforce.Com, Inc. Policy management in an interoperability network
US7904882B2 (en) 2003-10-16 2011-03-08 Salesforce.Com, Inc. Managing virtual business instances within a computer network
US8229996B2 (en) * 2003-11-26 2012-07-24 Microsoft Corporation Asynchronous processing of task components in connection with rights management system and the like
US8775654B2 (en) * 2003-12-19 2014-07-08 Salesforce.Com, Inc. Apparatus and methods for mediating messages
US7650380B2 (en) * 2004-02-12 2010-01-19 International Business Machines Corporation System and method for messaging and collaborating in an intranet environment
EP1735947B1 (de) * 2004-02-27 2008-06-18 Research In Motion Limited System und verfahren zum asynchronen kommunizieren mit synchronen web-diensten unter verwendung eines vermittlerdienstes
US7496500B2 (en) * 2004-03-01 2009-02-24 Microsoft Corporation Systems and methods that determine intent of data and respond to the data based on the intent
US7739351B2 (en) * 2004-03-23 2010-06-15 Salesforce.Com, Inc. Synchronous interface to asynchronous processes
US7590685B2 (en) * 2004-04-07 2009-09-15 Salesforce.Com Inc. Techniques for providing interoperability as a service
US7437169B2 (en) * 2004-06-07 2008-10-14 Microsoft Corporation System and method for optimizing network communication in response to network conditions
US8280948B1 (en) * 2004-06-08 2012-10-02 Persony Inc. System and method for enabling online collaboration amongst a plurality of terminals using a web server
US20060015622A1 (en) * 2004-07-14 2006-01-19 International Business Machines Corporation Enabling asynchronous transaction interactions on Web browsers
US20060026214A1 (en) * 2004-07-29 2006-02-02 International Business Machines Corporation Switching from synchronous to asynchronous processing
US7725605B2 (en) 2004-08-06 2010-05-25 Salesforce.Com, Inc. Providing on-demand access to services in a wide area network
US9645712B2 (en) 2004-10-01 2017-05-09 Grand Central Communications, Inc. Multiple stakeholders for a single business process
US7752671B2 (en) * 2004-10-04 2010-07-06 Promisec Ltd. Method and device for questioning a plurality of computerized devices
US7657618B1 (en) * 2004-10-15 2010-02-02 F5 Networks, Inc. Management of multiple client requests
US20060093125A1 (en) * 2004-11-02 2006-05-04 Dezonno Anthony J Messaging presence for non-messaging devices
US20060106840A1 (en) * 2004-11-04 2006-05-18 International Business Machines Corporation System and method for tracking notifications in a publish subscribe system
US7681074B2 (en) * 2005-04-29 2010-03-16 Microsoft Corporation Transport high availability
US7693071B2 (en) * 2005-05-27 2010-04-06 Microsoft Corporation System and method for routing messages within a messaging system
US7882176B2 (en) * 2005-05-27 2011-02-01 Microsoft Corporation Establishing a multiparty session by sending invitations in parallel
US7660850B2 (en) * 2005-05-27 2010-02-09 Microsoft Corporation Supporting a serial and a parallel invitation protocol
JP4725955B2 (ja) * 2005-06-30 2011-07-13 株式会社リコー 情報処理装置、メッセージ管理方法、プログラムおよび記憶媒体
EP1775911B1 (de) * 2005-10-13 2018-02-28 BlackBerry Limited System und Verfahren zur Bereitstellung asynchroner Benachrichtigungen unter Benutzung synchroner Daten
US8095599B2 (en) * 2005-10-20 2012-01-10 International Business Machines Corporation Mail-based web application and document delivery
US20070094336A1 (en) * 2005-10-24 2007-04-26 Microsoft Corporation Asynchronous server synchronously storing persistent data batches
US8077699B2 (en) * 2005-11-07 2011-12-13 Microsoft Corporation Independent message stores and message transport agents
US8223777B2 (en) * 2005-11-15 2012-07-17 Oracle International Corporation Gateway for achieving low latency and high availability in a real time event processing system
US7921165B2 (en) * 2005-11-30 2011-04-05 Microsoft Corporation Retaining mail for availability after relay
US7933964B2 (en) * 2006-02-16 2011-04-26 Microsoft Corporation Shell sessions
US7933986B2 (en) 2006-02-16 2011-04-26 Microsoft Corporation Transferring command-lines as a message
US8751579B1 (en) * 2006-03-02 2014-06-10 Salesforce.Com, Inc. Method and system of maintaining a browser in a design application workflow
US20090133129A1 (en) * 2006-03-06 2009-05-21 Lg Electronics Inc. Data transferring method
EP1992138A4 (de) * 2006-03-06 2014-12-31 Lg Electronics Inc Verfahren zur datenübertragungssteuerung, verfahren zur inhaltsübertragungssteuerung, verfahren zur erfassung von inhaltsverarbeitungsinformationen und inhaltsübertragungssystem
US8078153B2 (en) * 2006-04-29 2011-12-13 724 Solutions Software, Inc. System and method for dynamic provisioning of contextual-based identities
US8327024B2 (en) * 2006-04-29 2012-12-04 724 Solutions Software, Inc. System and method for SMS/IP interoperability
WO2007127422A2 (en) * 2006-04-29 2007-11-08 724 Solutions Software Inc. Platform for interoperability
US9112808B2 (en) * 2007-02-06 2015-08-18 At&T Intellectual Property Ii, L.P. Devices, systems, and methods for providing data
KR100862354B1 (ko) * 2007-04-10 2008-10-13 전자부품연구원 비동기 검색 환경을 지원하는 멀티미디어 검색 방법
US8626951B2 (en) * 2007-04-23 2014-01-07 4Dk Technologies, Inc. Interoperability of network applications in a communications environment
US8635069B2 (en) 2007-08-16 2014-01-21 Crimson Corporation Scripting support for data identifiers, voice recognition and speech in a telnet session
US8478880B2 (en) * 2007-08-31 2013-07-02 Palm, Inc. Device profile-based media management
US8560669B2 (en) * 2007-09-26 2013-10-15 Quantcast Corporation Tracking identifier synchronization
US8515903B2 (en) 2007-10-03 2013-08-20 Database Logic Inc. Collaboration of plural databases by interaction through universal index
US20090094229A1 (en) * 2007-10-03 2009-04-09 Mark Warne Ferrel Method and apparatus for exploiting 'trace' function to support database integration
US8214847B2 (en) * 2007-11-16 2012-07-03 Microsoft Corporation Distributed messaging system with configurable assurances
US8200836B2 (en) * 2007-11-16 2012-06-12 Microsoft Corporation Durable exactly once message delivery at scale
US7792997B2 (en) 2007-12-31 2010-09-07 Accenture Global Services Gmbh Freight backbone messaging architecture
US20090210822A1 (en) * 2008-02-18 2009-08-20 Microsoft Corporation Locating meeting users
US9143540B2 (en) * 2008-04-24 2015-09-22 Oracle International Corporation System and method for providing service correlation in a service access gateway environment
US8655954B2 (en) 2008-05-20 2014-02-18 Raytheon Company System and method for collaborative messaging and data distribution
WO2009143104A1 (en) 2008-05-20 2009-11-26 Raytheon Company System and method for maintaining stateful information
EP2301209B1 (de) 2008-05-20 2016-03-30 Raytheon Company System und verfahren zur nachrichtenfilterung
WO2009143105A2 (en) * 2008-05-20 2009-11-26 Raytheon Company Method and apparatus for providing a synchronous interface for an asynchronous service
US7752261B1 (en) 2008-06-27 2010-07-06 Quant cast Corporation System and method for multibeaconing
US8949344B2 (en) * 2008-09-15 2015-02-03 Microsoft Corporation Asynchronous queued messaging for web applications
US8156203B2 (en) 2008-09-15 2012-04-10 Microsoft Corporation Dye injected request generation
CN101686245B (zh) * 2008-09-28 2014-06-11 国际商业机器公司 用于隔离超文本传输协议会话的方法和系统
US8005923B2 (en) * 2009-02-23 2011-08-23 International Business Machines Corporation System and method of obfuscating queue management
US8739166B2 (en) * 2009-12-28 2014-05-27 Sap Ag Progress-driven progress information in a service-oriented architecture
US9536222B2 (en) * 2009-12-28 2017-01-03 Sap Se Progress information in a service-oriented architecture
US9015136B2 (en) * 2010-01-22 2015-04-21 Microsoft Technology Licensing, Llc Storing temporary state data in separate containers
JP5408353B2 (ja) * 2010-07-13 2014-02-05 富士通株式会社 マルチスレッド処理装置,マルチスレッド処理システム,マルチスレッド処理プログラム,及びマルチスレッド処理方法
US8453127B2 (en) * 2010-09-20 2013-05-28 Sap Ag Systems and methods providing a token synchronization gateway for a graph-based business process model
CN102158518B (zh) * 2010-12-03 2014-04-30 华为技术有限公司 一种cdn网络中的数据传输方法、网络节点及系统
US9602287B2 (en) * 2011-06-02 2017-03-21 Sap Se Method and system for signed stateless data transfer
US8694998B2 (en) 2011-08-29 2014-04-08 Microsoft Corporation Cancellable command application programming interface (API) framework
US20130191500A1 (en) * 2012-01-19 2013-07-25 Ebay Inc. Methods and systems for providing a synchronous interface over an asynchronous message bus
US9253011B2 (en) 2012-09-27 2016-02-02 Intuit Inc. Session-server affinity for clients that lack session identifiers
CN104184635B (zh) * 2014-08-19 2018-02-13 烽火通信科技股份有限公司 家庭网关基于Android RIL实现一对多数据通讯的方法及装置
US10033797B1 (en) * 2014-08-20 2018-07-24 Ivanti, Inc. Terminal emulation over HTML
JP6447224B2 (ja) * 2015-02-20 2019-01-09 日本電気株式会社 通信装置、中継装置、通信方法及び通信プログラム
US9961112B2 (en) * 2015-04-20 2018-05-01 Bomgar Corporation Method and apparatus for enforcing realtime access controls for endpoints
US10320906B2 (en) 2016-04-29 2019-06-11 Netapp, Inc. Self-organizing storage system for asynchronous storage service
US11100278B2 (en) 2016-07-28 2021-08-24 Ivanti, Inc. Systems and methods for presentation of a terminal application screen
US10397185B1 (en) * 2016-12-23 2019-08-27 EMC IP Holding Company LLC Scalable cloud hosted metadata service
US10574521B2 (en) * 2017-06-19 2020-02-25 Cisco Technology, Inc. Method and apparatus to predict configuration viability and dynamically manage multi-dimensional system scale in MSDC switches
US11516154B2 (en) * 2017-07-13 2022-11-29 Apple Inc. Systems for managing messaging conversations
CN111143745A (zh) * 2019-12-27 2020-05-12 中冶建筑研究总院有限公司 基于html的数据同步和交互的方法和系统
US11271968B2 (en) 2020-03-04 2022-03-08 International Business Machines Corporation Zero round trip time transmission for anticipatory request messages
CN112487218B (zh) * 2020-11-27 2023-07-14 北京百度网讯科技有限公司 内容处理方法、系统、装置、计算设备和存储介质
CN112395359B (zh) * 2020-11-30 2023-03-31 武汉烽火众智数字技术有限责任公司 一种基于数据库数据同步来实现http代理的方法和系统
US20240064207A1 (en) * 2022-08-16 2024-02-22 Capital One Services, Llc Systems and methods for asynchronous and synchronous network communication

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5530848A (en) * 1992-10-15 1996-06-25 The Dow Chemical Company System and method for implementing an interface between an external process and transaction processing system
US5329619A (en) * 1992-10-30 1994-07-12 Software Ag Cooperative processing interface and communication broker for heterogeneous computing environments
GB2276737A (en) * 1993-03-30 1994-10-05 Ibm Fault-tolerant transaction-oriented data processing
EP0706685B1 (de) * 1993-06-28 1997-12-03 Dow Benelux N.V. Eine integrierte Produktionsumgebung mit PROGRAMM-ZU-PROGRAMM- KOMMUNIKATIONS-SERVER und zugehöriges Verfahren
EP0673523B1 (de) * 1993-10-08 1999-02-10 International Business Machines Corporation Nachrichtenübertragung über ein netzwerk
GB9406477D0 (en) * 1994-03-31 1994-05-25 D2B Systems Co Ltd Interconnection of local communication bus systems
GB2288477A (en) * 1994-04-05 1995-10-18 Ibm Communications system for exchanging data between computers in a network.
JP2507235B2 (ja) * 1994-06-24 1996-06-12 インターナショナル・ビジネス・マシーンズ・コーポレイション クライアント・サ―バ・コンピュ―タ・システム、及びそのクライアント・コンピュ―タ、サ―バ・コンピュ―タ、並びにオブジェクト更新方法
JPH08286962A (ja) * 1994-12-16 1996-11-01 Internatl Business Mach Corp <Ibm> 処理システム及びオブジェクト活動化をスケジュールする方法
US5889957A (en) * 1995-06-07 1999-03-30 Tandem Computers Incorporated Method and apparatus for context sensitive pathsend
US5774670A (en) * 1995-10-06 1998-06-30 Netscape Communications Corporation Persistent client state in a hypertext transfer protocol based client-server system
US6216151B1 (en) * 1995-12-13 2001-04-10 Bea Systems, Inc. Saving connection time by obtaining result of request at later reconnection with server supplied associated key
US5754772A (en) * 1996-03-26 1998-05-19 Unisys Corporation Transaction service independent HTTP server-to-transaction gateway
GB2313524A (en) 1996-05-24 1997-11-26 Ibm Providing communications links in a computer network
US5961601A (en) * 1996-06-07 1999-10-05 International Business Machines Corporation Preserving state information in a continuing conversation between a client and server networked via a stateless protocol
JP3672208B2 (ja) * 1996-07-02 2005-07-20 インターナショナル・ビジネス・マシーンズ・コーポレーション 階層化トランザクション処理方法
US5835724A (en) * 1996-07-03 1998-11-10 Electronic Data Systems Corporation System and method for communication information using the internet that receives and maintains information concerning the client and generates and conveys the session data to the client
US6108689A (en) * 1996-10-11 2000-08-22 International Business Machines Corporation Method and system for processing messages in a distributed computing environment
GB2320112B (en) * 1996-12-07 2001-07-25 Ibm High-availability computer server system
US6088728A (en) * 1997-06-11 2000-07-11 Oracle Corporation System using session data stored in session data storage for associating and disassociating user identifiers for switching client sessions in a server
US6068661A (en) * 1997-10-01 2000-05-30 Micron Electronics, Inc. Method of emulating synchronous communication
US6085247A (en) * 1998-06-08 2000-07-04 Microsoft Corporation Server operating system for supporting multiple client-server sessions and dynamic reconnection of users to previous sessions using different computers
US6055564A (en) * 1998-03-11 2000-04-25 Hewlett Packard Company Admission control where priority indicator is used to discriminate between messages

Also Published As

Publication number Publication date
MY123071A (en) 2006-05-31
EP0978056A1 (de) 2000-02-09
JPH11510632A (ja) 1999-09-14
HUP9902190A2 (hu) 1999-11-29
HUP9902190A3 (en) 2000-03-28
US6336135B1 (en) 2002-01-01
JP3578221B2 (ja) 2004-10-20
ES2227692T3 (es) 2005-04-01
PL329935A1 (en) 1999-04-26
KR100275403B1 (ko) 2000-12-15
KR20000010691A (ko) 2000-02-25
CZ381198A3 (cs) 1999-10-13
GB9610898D0 (en) 1996-07-31
DE69731318D1 (de) 2004-11-25
EP0978056B1 (de) 2004-10-20
CN1219257A (zh) 1999-06-09
CN1117333C (zh) 2003-08-06
WO1997045798A1 (en) 1997-12-04
GB2313524A (en) 1997-11-26

Similar Documents

Publication Publication Date Title
DE69731318T2 (de) Herstellen von kommunikationsverbindungen in einem computernetzwerk
DE69632011T2 (de) Dateientransferverfahren, Verfahren für ein Dateien anforderndes Benutzergerät und Dateienanbietergerät
DE69835481T2 (de) Netzwerkdrucker mit Ferndrucker-Datenschlangensteuerverfahren
DE69814900T2 (de) Verfahren und system zur unterstützung verteilter software- entwicklung ohne bewusstsein der verteilten charakteristik der software
DE60038705T2 (de) Verfahren und vorrichtung für die aktivitäts-basierte zusammenarbeit eines rechnersystems, ausgestattet mit einem kommunikations-manager
DE69724877T2 (de) Verfahren und Vorrichtung zum Betrieb einer Aggregation von Serverrechnern mittels eines Doppelzweck-Proxy-Servers
DE60125913T2 (de) Datenübertragungsverfahren und vorrichtung
DE69832786T2 (de) Vorrichtung und verfahren zur identifizierung von klienten die an netzwer-sites zugreifen
DE60015423T2 (de) Verfahren und Vorrichtung zur Objektwiedergabe in einem Netzwerk
DE69730056T2 (de) Routen von duplikaten
DE69832406T2 (de) Kombiniertes internet-und datenzugangssystem
DE69834640T2 (de) System und Verfahren zur Synchronisierung elektronischer Nachrichten über ein Netzwerk
DE69838262T2 (de) Allgemeine benutzer-authentifizierung für netz-rechner
DE10236188B4 (de) Verfahren, System und Programmprodukt zum Bereitstellen eines Inhalts einer Quellwebsite an eine Verbraucherwebsite durch einen Bildumwandlungsdienst
DE69934871T2 (de) Verfahren und System zur optimalen Auswahl eines Webfirewalls in einem TCP/IP Netzwerk
DE69834579T2 (de) Http- sitzung- überwachung
DE10024715B4 (de) Verfahren und Vorrichtung zum Einrichten einer Zwei-Wege-Übertragung zwischen einem Host-System und einer Vorrichtung
DE69723432T2 (de) Informationsauffindungssystem mit einer cachedatenbank
DE602004006308T2 (de) Verfahren zum umlenken von client-anforderungen zu web-diensten
DE10003907A1 (de) Browser für die Anwendung beim Zugriff auf Hypertext-Dokumente in einer Mehrnutzer-Computerumgebung
DE10052313B4 (de) Verfahren und Vorrichtung zur Beschränkung des freien Verweisens (Hyperlinking) auf Webseiten der ursprünglichen Inhaltserzeuger (Content producers) durch Internet-Inhaltsverteiler (Content distributors)
DE10205108A1 (de) System und Verfahren zum Zugreifen auf Softwarekomponenten in einer verteilten Netzwerkumgebung
DE202008013034U1 (de) System zum Beschleunigen von Browsing-Sitzungen
DE19704694A1 (de) Verfahren und Vorrichtung zum Steuern eines Peripheriegerätes
DE112010005499T5 (de) Steuern der Nachrichtenübermittlung beim Publish/Subscribe-Nachrichtenaustausch

Legal Events

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