DE602005005613T2 - Überprüfen und Aufrechterhalten der Lebhaftigkeit einer Verbindung in einer Web Services Umgebung mit zuverlässiger Nachrichtenübermittlung - Google Patents

Überprüfen und Aufrechterhalten der Lebhaftigkeit einer Verbindung in einer Web Services Umgebung mit zuverlässiger Nachrichtenübermittlung Download PDF

Info

Publication number
DE602005005613T2
DE602005005613T2 DE602005005613T DE602005005613T DE602005005613T2 DE 602005005613 T2 DE602005005613 T2 DE 602005005613T2 DE 602005005613 T DE602005005613 T DE 602005005613T DE 602005005613 T DE602005005613 T DE 602005005613T DE 602005005613 T2 DE602005005613 T2 DE 602005005613T2
Authority
DE
Germany
Prior art keywords
message
sequence
protocol
timeout period
session
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.)
Active
Application number
DE602005005613T
Other languages
English (en)
Other versions
DE602005005613D1 (de
Inventor
Michael J. Redmond Moroney
Richard D. Redmond Hill
Rodney T. Redmond Limprecht
Shy Redmond Cohen
Stefan R. Redmond Batres
Margaret J. Redmond Lye
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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of DE602005005613D1 publication Critical patent/DE602005005613D1/de
Application granted granted Critical
Publication of DE602005005613T2 publication Critical patent/DE602005005613T2/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/40Business processes related to the transportation industry
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/143Termination or inactivation of sessions, e.g. event-controlled end of session
    • H04L67/145Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • Business, Economics & Management (AREA)
  • Primary Health Care (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer And Data Communications (AREA)
  • Working Measures On Existing Buildindgs (AREA)
  • Medicines Containing Material From Animals Or Micro-Organisms (AREA)

Description

  • QUERVERWEISE ZU VERWANDTEN ANMELDUNGEN
    • Nicht verfügbar
  • HINTERGRUND DER ERFINDUNG
  • 1. Das Feld der Erfindung
  • Die vorliegende Erfindung bezieht sich generell auf verlässliche Nachrichtenprotokolle für Netzdienste. Mehr spezifisch stellt die vorliegende Erfindung einen Mechanismus zur Verfügung, der die Charakteristiken von zuverlässigen Nachrichtenprotokollen für Netzdienste (Reliable Messaging protocols for Web Services, RM-WS) zum Verifizieren und Aufrechterhalten einer Verbindungslebendigkeit in einer Sequenzsitzung verstärkt.
  • 2. Hintergrund und verwandte Technik
  • Computernetzwerke haben unsere Fähigkeiten zum Kommunizieren und den Zugang zur Information verbessert, indem es einem Computer oder einer Vorrichtung zur Kommunikation erlaubt ist, über ein Netzwerk mit anderen Computersystemen unter Verwendung von elektronischen Nachrichten zu kommunizieren. Wenn eine elektrische Nachricht zwischen Computersystemen übertragen wird, wird die elektronische Nachricht oft durch einen Protokollstapel geschickt, der Operationen mit den Daten in der elektronischen Nachricht durchführt (z. B. Parsen, auf einen Weg leiten (Routing), Flusskontrolle usw.). Das offene Systemverbindungsmodell (Open System Interconnect, OSI) ist ein Beispiel eines Netzwerkrahmens zur Implementierung eines Protokollstapels.
  • Das OSI-Modell bricht die Operationen zum Übertragen einer elektronischen Nachricht in sieben verschiedene Stufen bzw. Schichten herunter, wobei jede dazu vorgesehen ist, eine bestimmte Operation in dem Datentransferprozess durchzuführen. Während Protokollstapel potenziell jede der Ebenen implementieren können, implementieren viele Protokollstapel nur ausgewählte Ebenen zum Transferieren von Daten durch ein Netzwerk. Wenn Daten von einem Computersystem übertragen werden, entstehen sie auf der Anwen dungsebene und werden zu dazwischenliegenden niedrigeren Ebenen und dann in ein Netzwerk heruntergereicht. Wenn Daten von einem Netzwerk empfangen werden, treten sie in die physikalischen Ebenen ein und werden dann an die höheren dazwischenliegenden Ebenen weitergereicht und dann eventuell auf dieser Applikationsebene empfangen. Die Applikationsebene bzw. Anwendungsebene – die am höchsten liegende Ebene – ist verantwortlich für eine Unterstützung der Anwendung und eine Entnutzerverarbeitung. Des Weiteren können sich in der Anwendungsebene mehrere andere Ebenen befinden (z. B. eine einfache Protokollebene mit einfachem offenem Zugang, Simple Open Access Protocol (SOAP) Layer). Eine weitere Ebene, die von den meisten Protokollstapeln mit aufgenommen wird, ist die Transportebene. Ein Beispiel für die Transportebene ist das Übertragungskontrollprotokoll (Transmission Control Protocol, TCP).
  • Netzdienste (Web Services, WS) waren die treibende Kraft beim Verbessern der Kommunikation zwischen Computersystemen und drehen die Art und Weise mit der wir Software aufbauen und verwenden von innen nach außen. Netzdienste lassen Anwendungen Daten tauschen bzw. teilen und – noch leistungsfähiger – rufen Fähigkeiten von anderen Anwendungen auf, ohne in Betracht zu ziehen, wie diese Anwendungen aufgebaut wurden; auf welchen Betriebssystemen oder Plattformen diese laufen; und welche Vorrichtungen zu ihrem Zugang verwendet werden. Netzdienste werden über das Internet mittels industrieller Standardprotokolle inklusive SOAP, XML (eXtensible Markup Language), UDDI (Universal, Description, Discovery and Integration), WSDL (Web Service Description Language) usw. aufgerufen. Obwohl die Netzdienste unabhängig voneinander bleiben, können sie sich lose mit einer mitarbeitenden Gruppe verbinden, die eine bestimmte Aufgabe ausführt.
  • Derzeitige WS-Technologien bieten eine direkte SOAP-Nachrichtenkommunikation zwischen einem Initiator (z. B. einem Klienten (Client)) und einem Empfänger (z. B. einem Dienst (Service)). In dem allgemeinen Fall bidirektionaler Nachrichten wird eine SOAP-Nachfragenachricht von dem Initiator an den Empfänger (Acceptor) gesendet und eine SOAP-Antwortnachricht wird darauf als Antwort gesendet. Eine weitere Kommunikationsvariante zwischen Endpunkten ist ein unidirektionaler Nachrichtenaustausch, worin der Initiator eine Nachricht an den Empfänger ohne Antwort sendet.
  • Ein wesentlicher Vorteil der aufkommenden WS-Architektur ist die Fähigkeit, integrierte, übergreifend tätige Lösungen zu liefern. Weil Netzdienste jedoch verschiedenartige Dienste aus verschiedenen Geschäfts-, Organisations- und anderen Dienstleistern über unverlässliche Kommunikationswege, so wie das Internet, zur Verfügung stellen, wird die Zuverlässigkeit des WS zu einem zunehmend wichtigen Faktor. Die Zuverlässigkeit von WS wird durch mehrere Faktoren beeinflusst, die beinhalten, aber nicht beschränkt sind auf: die Zuverlässigkeit des Netzdienstes an Endpunkten; die Zuverlässigkeit der Charakteristiken der Kommunikationswege über welche auf die Netzdienste zugegriffen wird; Leistungs- und Fehlertoleranzcharakteristiken; und das Ausmaß, in welchem die Netzdienste gleichzeitig auftretenden Benutzerzugang (Client Access) händeln können.
  • Es gab viele Versuche, verlässliche Nachrichtenübermittlung von Netzdiensten durch die Auswahl eines verlässlichen Transportprotokolls, durch das die Nachrichten (z. B. SOAP-Nachrichten) zwischen Endpunkten ausgetauscht werden, zu erreichen. Zum Beispiel kann ein verlässlicher Nachrichtentransport, so wie Nachrichtenaneinanderreihungen, verwendet werden, um Nachrichten zuverlässig zwischen Initiatoren und Empfängern zu übertragen. Technologien zur Kommunikation von Nachrichtenaneinanderreihungen (message-queuing) ermöglichen es den Anwendungen, auf verschiedenen Systemen miteinander zu kommunizieren, indem Nachrichten zu Aneinanderreihungen (queues) gesendet werden und Nachrichten von den Aneinanderreihungen gelesen werden, die zur Zuverlässigkeit unbeirrt über Fehler fortgeführt werden.
  • Obwohl Aneinanderreihungssysteme einen Transport zur Verfügung stellen, welcher zum verlässlichen Übertragen von SOAP-Nachrichten verwendet werden kann, sind da mehrere Nachteile in einem solchen System. Zum Beispiel stellen diese Systeme Lösungen für einen asynchronen Betrieb zur Verfügung, wobei die Nachfragen (und möglicherweise ihre Antworten) isoliert übertragen und bearbeitet werden. Dementsprechend sind diese Systeme typischerweise in Bezug auf Ressourcen schwergewichtig, beinhalten eine Vielzahl von Vermittlungsstellen mit andauernd durchgeführten Nachrichtenspeicherungen und mit einer womöglich höheren Komplexität in der Einrichtung, den Programmierungsmodellen und dem Management. All dies ist unnötig für eine verlässliche direkte Kommunikation und lenkt von dem Ziel ab, Latenzen zu minimieren. Des Weiteren unterstützt das Programmmodell nicht direkt die Programmierung oder Sitzungen (Sessions) im Nachfrage- und Antwortstil. Dementsprechend unterscheidet sich das Modell aneinandergereihter Kommunikationen von dem unmittelbaren "interaktiven" Netzdienstmodell und ist nicht auf kritische "verbundene" Szenarios und "interaktive" Anwendungen gerichtet. Zum Beispiel ist es nicht gut für Fälle geeignet, in denen eine Antwort auf pünktliche Weise erwartet wird, oder für Fälle, in denen verteilte Transaktionsinhalte (distributed-transaction-context) zwischen einem Initiator und einem Empfänger getauscht bzw. geteilt werden.
  • Es gab auch Versuche, verlässliche Transferebenen über grundsätzlich unverlässliche Transportprotokolle zu definieren, z. B. verlässliche HTTP oder HTTPR. Ein allgemeines Problem, das diese Lösungen – sowie die Aneinanderreihungslösungen – plagt, ist allerdings, dass verlässliche Nachrichtenübermittlung nur erreicht werden kann, wenn das spezifische verlässliche Transportprotokoll für die Kommunikation zwischen dem Initiator und dem Empfänger verwendet wird. Die fundamentale Natur von Netzdiensten verlangt nach Unabhängigkeit von den Plattformen verschiedener Anbieter, Implementierungssprachen und spezifischen Transportprotokollen. In einem gattungsgemäßen (generischen) Fall könnte ein Initiator nicht dazu fähig sein, eine Nachricht unter Verwendung eines bestimmten Protokolls (z. B. der Empfänger unterstützt das Protokoll nicht) zu übertragen oder die Nachricht müsste womöglich eine Vielzahl von Sprüngen (hops) passieren, nachdem sie den versendenden Knotenpunkt (node) verlassen hat und bevor sie in dem Zielknotenpunkt ankommt. Abhängig von der Natur der Konnektivität zwischen den zwei Knotenpunkten, die in einem bestimmten Sprung enthalten sind, könnte ein passendes Transportprotokoll, das nicht verlässliche Nachrichtencharakteristiken zur Verfügung stellt, gewählt worden sein.
  • Vermittler könnten auch auf verschiedenen Ebenen in dem Protokollstapel existieren; und deswegen nicht eine vollkommene End-zu-End Zuverlässigkeit bieten. Zum Beispiel können Transportprotokolle Verlässlichkeit über Vermittler niedrigerer Ebenen bieten (z. B. IP-Ebenevermittler – z. B. IP-Router). Das Transportprotokoll könnte allerdings an einem SOAP-Vermittler oder einer Anwendungsebene enden. Dementsprechend könnte das Transportprotokoll nicht dazu fähig sein, eine Zuverlässigkeit über diesen Vermittler zu bieten, d. h. keine End-zu-End Zuverlässigkeit über die Anwendungsebene.
  • In jüngster Zeit bieten verschiedene verlässliche Nachrichtenprotokolle für Netzdienste (im Folgenden als "RM-WS-Protokolle" bezeichnet), z. B. WS-verlässliche Nachrichtenübertragung (WS-ReliableMessaging), Lösungen zu den oben identifizierten Unzulänglichkeiten von aktuellen verlässlichen Nachrichtenübertragungssystemen. Diese Protokolle sind transportagnostisch verbundene Protokolle (transport agnostic connected protocols) die es erlauben, Nachrichten zuverlässig zwischen Endpunktanwendungen in Anwesenheit von Softwarekomponenten-, System- oder Netzwerkfehlern zu übertragen. Dementsprechend bieten RM-WS-Protokolle Lösungen für eine zuverlässige, sitzungsorientierte End-zu-End Kommunikation zwischen einem Initiator und einem Empfänger.
  • Diese RM-WS-Protokolle sind TCP dahingehend ähnlich, dass TCP verlässlich exakt einmal eine geordnete Lieferung eines Stromes von Bytes von einem TCP-Sender zu einem TCP-Empfänger über nach Internet-Protokoll (IP) arbeitende Verteiler (Router) und eine Vielzahl von Netzwerken bietet. Verlässliche Nachrichtenprotokolle für WS bieten das gleiche und mehr für Nachrichten (beachte: die Transfereinheit ist eine Nachricht, nicht ein Byte oder eine Ansammlung von Bytes, so wie es für TCP der Fall ist, worin die Größe der Bytes durch den verfügbaren nutzbaren Platz in dem IP-Paket bestimmt wird) über eine Vielzahl von Vermittlern (inklusive SOAP-Ebenenvermittler), Transporte und Verbindungen. Obwohl TOP und RM-WS-Protokolle beide "verlässliche" Protokolle sind, weil RM-WS auf der Anwendungs- oder SOAP-Ebene in dem OSI-Modell liegt, sorgen RM-WS-Protokolle für eine verlässliche Benachrichtigung, unbeachtet des Transportprotokolls, das zum Transfer der Daten verwendet wird. Dementsprechend sind RM-WS-Protokolle nicht an ein bestimmtes Transport- oder anderes Protokoll gebunden, das zum Transfer von Nachrichten zwischen Endpunkten benutzt wird.
  • Obwohl ein paar wenige RM-WS-Protokolle schon einige Zeit lang zur Verfügung stehen, bestehen immer noch mehrere Nachteile und Unzulänglichkeiten bei diesen Protokollspezifikationen. Zum Beispiel stellen diese RM-WS-Protokolle keinen Weg zur Verifizierung der Verbindungseigenschaften für eine eingerichtete Sequenzsitzung zur Verfügung. Des Weiteren stellen diese Spezifikationen keinen Weg zur Aufrechterhaltung der Lebendigkeit einer Verbindung und/oder zur Verlängerung der Sequenzsitzung in Abwesenheit eines Nachrichtenaustausches über eine inaktive Auszeitperiode zur Verfügung. Dementsprechend existiert ein Bedürfnis, eine Verbindungslebendigkeit für Systeme zu verifizieren und aufrechtzuerhalten, die ein RM-WS-Protokoll verwenden.
  • Die EP 1 463 249 A2 von R. D. Hill et al. offenbart eine Nachrichtenübertragung mit konfigurierbaren Absicherungen und Merkmalen zwischen zwei Endpunkten.
  • KURZE ZUSAMMENFASSUNG DER ERFINDUNG
  • Die oben erwähnten Unzulänglichkeiten und Nachteile von aktuellen verlässlichen Nachrichtenprotokollen für Netzdienste werden durch beispielhafte Ausführungsformen der vorliegenden Erfindung überwunden. Zum Beispiel sorgt die vorliegende Erfindung für Mechanismen zum Verifizieren der Existenz einer Sequenzverbindung und zum Aufrechterhalten der Verbindungslebendigkeit zwischen Endpunkten durch die Verwendung eines verlässlichen Nachrichtenprotokolls für Netzdienste (RM-WS-Protokoll).
  • Wenn eine Verbindungslebendigkeit zum Beispiel an einem Initiatorendpunkt aufrechterhalten wird, besorgt die vorliegende Erfindung zur Einrichtung einer Sequenzsitzung, die durch einen einzigartigen Sequenzidentifizierer auf einer Anwendungsebene zwischen zwei Endpunkten in Übereinstimmung mit einem RM-WS-Protokoll identifiziert wird. Basierend auf der Nachfrage, eine Sequenzsitzung aufzubauen, wird ein einzigartiger Sequenzidentifizierer kreiert, der zu der Sequenzsitzung gehört. Danach oder zu jeder anderen Zeit wird eine inaktive Auszeitperiode für die Sequenzsitzung identifiziert, die eine obere Grenze für die Zeit darstellt, die verstreichen darf, ohne dass eine Nachricht für die Sequenzsitzung erhalten wird. In Übereinstimmung mit einem Algorithmus, der auf der inaktiven Auszeitperiode basiert, wird eine Lebenserhaltungsablaufauszeit berechnet. Basierend auf der berechneten Lebenserhaltungsablaufauszeit wird eine Nachricht gesendet, die den einzigartigen Sequenzidentifizierer beinhaltet. Danach wird vor der Inaktivitätsauszeitperiode eine Nachricht erhalten, die den einzigartigen Sequenzidentifizierer beinhaltet, so dass die Verbindungslebendigkeit aufrechterhalten wird. Basierend auf der erhaltenen Nachricht wird ein Inaktivitätszeitgeber für die Inaktivitätsauszeitperiode zurückgesetzt, so dass die Sequenzsitzung am Leben gehalten bzw. aufrechterhalten wird.
  • In einem Ausführungsbeispiel zum Verifizieren der Verbindungslebendigkeit wird eine durch einen einzigartigen Sequenzidentifizierer identifizierte Sequenzsitzung auf einer Anwendungsebene zwischen zwei Endpunkten in Übereinstimmung mit einem RM-WS-Protokoll eingerichtet. Nämlich wie oben wird eine Inaktivitätauszeitperiode identifiziert, die eine obere Zeitgrenze für die Zeit darstellt, die verstreichen darf, ohne dass zwischen den Endpunkten für die Sequenzsitzung eine Nachricht ausgetauscht wird. Bevor die Inaktivitätsauszeitperiode abläuft wird eine Nachricht zum Verifizieren der Verbindung erhalten, die einen einzigartigen Sequenzidentifizierer enthält, der zu der Sequenzsitzung gehört. Basierend auf der erhaltenen Nachricht wird ein Inaktivitätszeitgeber für die Inaktivitätsauszeitperiode zurückgesetzt, so dass die Sequenzsitzung am Leben gehalten wird.
  • Zusätzliche Merkmale und Vorteile der Erfindung werden in der nachfolgenden Beschreibung fortgeführt und werden in Teilen aus der Beschreibung offensichtlich oder können bei der Ausführung der Erfindung erlernt werden. Die Merkmale und Vorteile der Erfindung können mittels der Instrumente und Kombinationen, die insbesondere in den angefügten Ansprüchen dargelegt werden, realisiert und erhalten werden. Diese und andere Merkmale der vorliegenden Erfindung werden aus der nachfolgenden Beschreibung und den angehängten Ansprüchen noch vollständiger offensichtlich oder können durch die Ausführung der Erfindung erlernt werden, so wie hierin anschließend fortgeführt.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Um die Art und Weise zu beschreiben, in der die oben genannten und anderen Vorteile und Merkmale der Erfindung erlangt werden können, wird eine eingehendere Beschreibung der oben kurz beschriebenen Erfindung mit Bezug auf die spezifischen Ausführungsformen dieser durchgeführt werden, die in den beigefügten Zeichnungen dargestellt sind. Im Verständnis dessen, dass die Zeichnungen nur typische Ausführungsformen der Erfindung aufzeigen und deshalb nicht als ihren Umfang begrenzend betrachtet werden sollten, wird die Erfindung mit zusätzlicher Spezifizierung und Detaillierung durch die Verwendung der begleitenden Zeichnungen beschrieben und erklärt werden, in denen:
  • 1A ein Computersystem zum Verifizieren und Aufrechterhalten der Verbindungslebendigkeit durch ein Verbessern von Merkmalen von einem RM-WS-Protokoll in Übereinstimmung mit Ausführungsbeispielen der vorliegenden Erfindung darstellt;
  • 1B eine Zeitlinie für einen Algorithmus darstellt, der zum Berechnen der Intermittiertheit oder Periodizität zum Senden von RM-WS-Protokollinfrastrukturnachrichten zum Aufrechterhalten der Verbindungslebendigkeit in Übereinstimmung mit beispielhaften Ausführungsformen der vorliegenden Erfindung verwendet werden kann;
  • 2 ein Beispielsystem darstellt, das eine passende Betriebsumgebung für die vorliegende Erfindung zur Verfügung stellt;
  • 3 ein Flussdiagramm eines Verfahrens zum Aufrechterhalten der Verbindungslebendigkeit in Übereinstimmung mit Ausführungsbeispielen der vorliegenden Erfindung darstellt; und
  • 4 ein Flussdiagramm eines Verfahrens zum Verifizieren der Verbindungslebendigkeit in Übereinstimmung mit Ausführungsbeispielen der vorliegenden Erfindung darstellt.
  • DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Die vorliegende Erfindung erstreckt sich über Verfahren, Systeme und Computerprogrammprodukte für Mechanismen, welche verlässliche Nachrichtenprotokolle für Netzdienste (RM-WS) verbessern, um eine Verbindungslebendigkeit in einer Sequenzsitzung zu verifizieren und aufrechtzuerhalten. Die Ausführungsformen der vorliegenden Erfindung können einen Computer für einen speziellen Zweck oder einen Allzweckcomputer umfassen, der verschiedene Computerhardware beinhalten kann, was untenstehend detailliert diskutiert wird.
  • Die vorliegende Erfindung ist auf Erweiterungen von verlässlichen Nachrichtenprotokollen für Netzdienste (hierin anschließend als "RM-WS-Protokolle" bezeichnet), d. h. WS-verlässliche Nachrichtenübertragung (WS-ReliableMessaging (WS-RM)) gerichtet, die Spezifikationen beschreiben, welche es erlauben, dass eine Nachricht zuverlässig zwischen verteilten Anwendungen in der Anwesenheit von Softwarekomponenten-, System- oder Netzwerkfehlern geliefert wird. Verlässliche Nachrichtenprotokolle für Netzdienste vereinfachen die erfolgreiche Übertragung von Nachrichten von einer Quelle (hierin im Folgenden "ein Initiator") zu einem Ziel, d. h. einem Dienst (hierin nachfolgend "ein Annehmer" – "acceptor"), und stellen sicher, dass Fehlerzustände erkennbar sind. Diese Protokolle sind transportagnostisch, was ihnen erlaubt, unter Verwendung verschiedener Netzwerkübertragungstechnologien implementiert zu werden. Des Weiteren verbergen Implementierungen von verlässlichen Nachrichtenprotokollen intermittierende Kommunikationsfehler vor den Anwendungen und können im Falle von Systemfehlern für eine Wiederherstellbarkeit sorgen.
  • Die vorliegende Erfindung überwacht die Aktivität einer eingerichteten Sequenzsitzung zwischen zwei Endpunkten, welche als die Handlung des Empfangens von Nachrichten für diese Sequenz definiert ist. Die erhaltenen Nachrichten können Anwendungs- oder Infrastrukturnachrichten sein (d. h. Bestätigungsnachrichten in Übereinstimmung mit einem RM-WS-Protokoll). Des Weiteren definiert die vorliegende Erfindung eine Inaktivitätsauszeitperiode (Inactivity Timeout – IT), die derjenigen Zeit eine Obergrenze setzt, die ver streichen kann, ohne dass Nachrichten erhalten werden (entweder Anwendungen oder Infrastruktur) bezüglich der Sequenzsitzung. Wenn die obere Zeitgrenze erreicht wird, wird angenommen, dass der andere Endpunkt nicht vorhanden ist, und es wird angenommen, dass die Sequenz verloren ist oder verlassen wurde. Wenn eine Nachricht andererseits empfangen wird, bevor die IT abläuft, wird ein IT-Zeitgeber zurückgesetzt und die Verbindung wird verifiziert bzw. bestätigt. In einer anderen auch verwandten Ausführungsform, die auf einer identifizierten IT basiert, berechnet die vorliegende Erfindung eine Anfangszeit und eine Periodizität für das Versenden von idempotenten RM-WS-Protokoll Infrastrukturnachrichten zwischen den Endpunkten in einem Versuch, die Verbindungslebendigkeit aufrechtzuerhalten.
  • 1A stellt ein verteiltes Computersystem 100 dar, das zur Ausübung einiger der oben beschriebenen Ausführungsbeispiele verwendet werden kann. Eine Sequenzsitzung kann zwischen einem Initiator 120 und einem Annehmer 125 in Übereinstimmung mit einem RM-WS-Protokoll eingerichtet werden. Die eingerichtete Sequenzsitzung kann mehrere oder nicht aktuelle Netzwerkverbindungen überspannen, was von dem verwendeten Transport abhängt. Des Weiteren können die Verbindungen über die Zeit unterschiedlich sein (d. h. verwende eine Verbindung jetzt und eine unterschiedliche später) und können in der Topologie unterschiedlich sein (d. h. verschiedene Transporttypen für jeden Sprung). Wenn die Nachrichten z. B. ausgetauscht werden, indem die Nachrichten auf eine Diskette (floppy disk) kopiert werden und die Disketten zwischen dem Initiator 120 und dem Annehmer 125 ausgetauscht werden, besteht keine echte physikalische Verbindung zwischen den Computern und durch eine Verbesserung der Charakteristiken von einem RM-WS-Protokoll kann die vorliegende Erfindung dennoch eine Sitzung zwischen den kommunizierenden Parteien, d. h. dem Initiator 120 und dem Annehmer 125, aufbauen.
  • Beachte, dass das Diskettenbeispiel für Zwecke der Darstellung gegeben wurde und kein typischer Anwendungsfall ist. Ein typischerer Anwendungsfall für "interaktive Anwendungen" ("interactive applications") wäre die Verwendung von TCP/IP, HTTP (möglicherweise überlagert über TCP/IP), UDP/IP, Leitungen oder andere Echtzeittransportmechanismen.
  • Ausführungsbeispiele sorgen dafür, dass der Initiator 120 vorrangig für das Aufrechterhalten der Verbindungslebendigkeit verantwortlich ist. Dementsprechend unterstützt diese Ausführungsform einen nicht adressierbaren (d. h. anonymen) Initiator 120 sowie ei nen Klienten (Client) hinter einer Schutzwand (firewall), der mit dem Annehmer 125 über Nachfrage-Antwortprotokolle, so wie SOAP über HTTP, kommuniziert. Beachte allerdings, dass in dem Fall, dass der Initiator 120 nicht adressierbar (und in einigen Fällen sogar wenn anonym) ist, entweder der Endpunkt (d. h. Initiator 120 oder Annehmer 125) die Verbindungslebendigkeit verifizieren kann, wie unten beschrieben ist. Obwohl sich die folgenden Beispiele typischerweise auf den Initiator 120 als den die Verbindungslebendigkeit aufrechterhaltenden und verifizierenden beziehen, wird dementsprechend so ein Bezug für Darstellungszwecke verwendet, der nicht dazu gedacht ist, den Umfang der vorliegenden Erfindung zu begrenzen oder auf eine andere Art und Weise einzuengen, sofern dies nicht explizit beansprucht wird.
  • Unbeachtet dessen, ob der Initiator 120 anonym ist oder nicht, verwendet der Initiator 120 ein Verbindungsverifikationsmodul 105, das einen Zeitgeber 110 beinhaltet, um zu verhindern, dass eine eingerichtete Sequenzsitzung wegen einer Inaktivität in der Abwesenheit von Nachrichten der Anwendung 135 oder der Infrastruktur 130 beendet wird. Basierend auf einer identifizierten Inaktivitätsauszeit (IT) zum Beispiel verwendet das Verbindungsverifikationsmodul 105 einen Algorithmus zum Initiieren eines RM-WS-Infrastrukturnachrichten-Austausches zum Verhindern einer Inaktivitätsauszeit auf beiden Seiten der Verbindung. Zum Beispiel bestimmt das Verbindungsverifikationsmodul 105 eine Zeitperiode zum Senden einer ersten Bestätigungsnachfrage-Nachricht 115 (auch bekannt als und hierin austauschbar "Lebenserhaltungs" nachricht 115 genannt) zu der anderen Seite, was die RM-WS-Bestätigungsnachfrage-Nachricht 115 verbessert (beachte, dass in dem Fall von WS-RM die Bestätigungsnachfrage-Nachricht – Ack Request verwendet werden kann) und zu einem Verwenden eines eigens angefertigten Algorithmus führt.
  • Beachte, dass es die Ausführungsbeispiele der IT erlauben, auf der Anwendungsebene basiert auf Dingen wie Latenzfragen, Zuverlässigkeit des Netzwerks und andere Betrachtungen einstellbar zu sein. Im Falle des obengenannten Diskettenbeispiels würde die Inaktivitätsauszeitperiode in ihrer Dauer relativ groß sein müssen, um die durch das Kommunikationsmedium eingebrachte Latenz zuzulassen, wobei andere Systeme möglicherweise relativ kurze Zeitdauern erfordern, um eine Sitzung offen zu halten, ohne Nachrichten von dem Annehmer 125 zu erhalten. Dementsprechend kann die IT auf Basis der Verbindung einstellbar sein und kann zwischen dem Initiator 120 und dem Annehmer 125 ausgehandelt werden, bevor die Sequenzsitzung eingerichtet wird und/oder kann dynamisch modifiziert werden, nachdem die Sitzung eingerichtet wurde.
  • Unbeachtet des IT-Wertes setzt der Annehmer 125 seinen Inaktivitätszeitgeber (nicht gezeigt) zurück, wenn der Annehmer 125 eine Bestätigungsnachfrage-Nachricht 115 erhält. Beachte, dass unbeachtet dessen, ob der Annehmer 125 eine Infrastruktur 130 (d. h. Bestätigungsnachfrage 115) oder Anwendungsebene 135 Nachricht erhält, der Inaktivitätszeitgeber zurückgesetzt werden wird. An diesem Punkt kann der Annehmer 125 die Verbindungslebendigkeit verifizieren.
  • Um die Verbindungslebendigkeit bei dem Initiator 120 zu verifizieren, wird der Initiator 120 es ebenso benötigen, Nachrichten für die Sequenzsitzung zu erhalten (entweder Anwendung 135 oder Infrastruktur 130). Wenn der Annehmer 125 eine Bestätigungsnachfrage-Nachricht 115 empfängt (d. h. im Falle von WS-RM sendet der Annehmer 125 eine Bestätigungsnachricht – Ack message), antwortet er dementsprechend typischerweise durch ein Versenden einer RM-WS-Bestätigungsantwort-Nachricht – Ack Response 130. Auf den Erhalt einer Bestätigungsantwort oder Bestätigung 130 hin validiert der Initiator 120 die Verbindungslebendigkeit und setzt den Inaktivitätszeitgeber 110 auf der Seite des Initiators 120 zurück und die Verbindungslebendigkeit wird aufrechterhalten. Beachte, dass, wie oben erwähnt, eine Anwendungsnachricht 135, die von dem Initiator 120 vor dem Ablauf der Inaktivitätsauszeit empfangen wird, auch den Zeitgeber 110 zurücksetzen wird. In solch einem Fall wird das Verbindungsverifikationsmodul 105 zurückgesetzt und führt eine Wiederberechnung der ursprünglichen bzw. anfänglichen Periode zum Versenden einer Bestätigungsnachfrage-Nachricht 115 durch.
  • Beachte des Weiteren, dass unbeachtet dessen, ob eine Nachricht (entweder Anwendung 135 oder Infrastrukturnachricht 130) von dem Initiator 120 empfangen wird oder nicht, die Sequenzsitzung wenigstens auf der Seite des Annehmers 125 verlängert wird. In dem Fall, dass der Initiator 120 anonym ist (oder unter einigen Umständen, unter denen der Initiator 120 adressierbar ist), kann es dementsprechend keine Inaktivitätsauszeit für den Initiator 120 geben. Das periodische Versenden von Bestätigungsnachfrage-Nachrichten 115 kann dementsprechend die Verbindungslebendigkeit beim Annehmer 125 verifizieren, ungeachtet dessen, ob Nachrichten von dem Initiator 120 empfangen werden oder nicht. In der Tat ist das Umgekehrte der Fall, wobei der Annehmer 125 nicht die Inaktivitätsauszeit antreibt, aber die Verbindung des Initiators 120 verlängert wird, wenn Nachrichten erhalten werden.
  • Es ist auch wichtig zu beachten, dass die Infrastrukturnachrichten während des Austausches nicht zuverlässig übertragen werden und zu jedem Zeitpunkt verloren gehen können. Dementsprechend kann die Bestätigungsnachfragenachricht 115 von dem Initiator 120 zu dem Annehmer 125 verloren werden. Genauso gut kann die Bestätigungsantwort 130 auf dem Weg vom Annehmer 125 zum Initiator 120 verloren werden. In solchen Fällen sorgen Ausführungsbeispiele für einen speziell eingestellten Algorithmus, der auf der Inaktivitätsauszeitperiode für das periodische Versenden der Bestätigungsfrage 115 zu dem Annehmer 125 basiert. Beachte, dass die Infrastrukturnachrichten 115, 135 idempotent sind, so dass keine Duplikationserkennung benötigt wird und eine Reihenfolge nichts ausmacht.
  • Das Verbindungsverifikationsmodul 105 verwendet die oben benannten speziell oder spezifisch angefertigten Algorithmen zum Auswählen der Zeiten für erstmalige oder nachfolgende periodische Versuche zum Initiieren eines Austausches, wie oben beschrieben. 1B zeigt eine beispielhafte Zeitstrahldarstellung eines möglichen Algorithmus, der zum Versenden der Lebenserhaltungs- oder Bestätigungsnachfrage-Nachrichten 115 verwendet werden kann. Wie in 1B gezeigt ist, basiert der Zeitstrahl bzw. die Zeitlinie des Algorithmus auf einem oder mehreren aus wenigstens drei Werten. Erstens die oben erwähnte Inaktivitätsauszeit (IT) 140, welche festlegt, wie lange der Initiator 120 warten wird, ohne Nachrichten von dem Annehmer 125 zu erhalten, bevor die Sequenzsitzung fehlschlägt oder verlassen wird. Als Nächstes die maximale Anzahl von Wiederholungsversuchen (Maximum Retry Count – MRC) 155, welche die Anzahl von Malen ist, die der Initiator 120 versuchen wird, eine Nachricht wieder zu versenden, bevor er aufgibt. Dies ist sowohl auf Anwendungs- als auch Infrastrukturnachrichten (d. h. Lebenserhaltungsnachrichten 115) anzuwenden. Drittens die Lebenserhaltungsablaufauszeit (Keep-Alive Expiration Timeout – KAET) 150, die als das Intervall definiert wird, das der Initiator 120 abwarten wird, ohne eine Nachricht von dem Annehmer 125 zu bekommen, bevor er damit beginnt, Lebenserhaltungsnachrichten 125 zu versenden – d. h. die KAET 150 ist ein Bruchteil (N) von der IT 140, der die ursprüngliche Zeit festlegt, Lebenserhaltungsnachrichten 115 zu versenden. In den nachfolgenden Beispielen ist N auf einen Ursprungswert von 0,5 gesetzt. Dementsprechend wird der Initiator 120 mit dem Versenden von Lebenserhaltungsnachrichten 115 beginnen, nachdem die Hälfte der IT 140 vergangen ist, ohne dass von dem Annehmer 125 eine Aktivität ausging.
  • Basierend auf diesen drei Werten kann ein Lebenserhaltungsintervall (Keep-Alive Interval – KAI) 145 berechnet werden – d. h. das Intervall zwischen einem sukzessiven oder periodischen Versenden von Lebenserhaltungsnachrichten 115. Zum Beispiel kann das Lebenserhaltungsintervall 145 unter Verwendung des Algorithmus KAI = IT·(1–N)/MRC berechnet werden. Die Beziehung zwischen der IT 140, der KAET 150, der MRC 155 und der KAI 145 ist dargestellt, wie in 1B gezeigt ist. Beachte, dass, obwohl ein spezifischer Algorithmus zum Definieren der KAET 150 und KAI 145 verwendet wurde, der vorliegenden Erfindung andere Algorithmen und Wege zur Verfügung stehen, um festzulegen, wann eine Bestätigungsnachfrage-Nachricht oder Lebenserhaltungsnachricht 115 zu versenden ist. Zum Beispiel kann die Periodizität (d. h. KAI 145) zum Versenden der Lebenserhaltungsnachrichten 115 beliebig gewählt werden. Dementsprechend wird die Verwendung des oben spezifizierten Algorithmus zum Festlegen dieser Werte nur für Darstellungszwecke verwendet und ist nicht dazu gedacht, das Ziel oder den Umfang der vorliegenden Erfindung zu begrenzen oder auf eine andere Art und Weise zu schmälern, solange dies nicht explizit beansprucht wird.
  • Trotzdem wird typischerweise der Initiator 120 die IT 140, die KAET 150 und die KAI 145 im Sinne eines periodischen Zeitgeberintervalls berechnen. Zum Beispiel, wenn die IT 140 zwei Stunden war, war die MRC 155 fünf und das periodische Zeitgeberintervall war zwei Sekunden, dann würde die KAET 150 unter Verwendung der obigen Gleichungen und Annahmen (d. h. N = 0,5) gleich einer Stunde sein und die KAI würde gleich zwölf Minuten sein. Ein Konvertieren der Werte zu Sekunden und Teilen durch das Zeitgeberintervall führt zu dem Folgenden: IT/(Zeitgeberintervall) = 7200/2 = 3600 Zeitgeberschritte bzw. -schläge (timer ticks); KAET/(Zeitgeberschritte) = 3600/2 = 1800 Zeitgeberschritte; und KAI/(Zeitgeberintervall) = 720/2 = 360 Zeitgeberschritte. Dementsprechend wird der Initiator 120 in diesem Fall nach 1800 Zeitgeberschritten mit dem Versenden von Lebenserhaltungsnachrichten 115 beginnen. Der Initiator 120 wird auch alle 360 Zeitgeberschritte eine Lebenserhaltungsnachricht versenden, bis insgesamt 3600 Schritte vergangen sind. Wenn der Initiator 120 keine Nachricht von dem Annehmer 125 während dieser Dauer erhalten hat (d. h. über das IT-Intervall), wird der Initiator 120 die Sequenzsitzung fehlschlagen lassen.
  • In einem alternativen Ausführungsbeispiel kann die obige Implementierung unter Verwendung von zwei Zeitgebern erreicht werden. Ein erster Zeitgeber wird mit einem Zeitintervall festgelegt, das der IT 140 gleicht. Dieser erste Zeitgeber wird zurückgesetzt, wann immer eine Nachricht von dem Annehmer 125 empfangen wird. Wenn der erste Zeitgeber bzw. -messer ohne eine Aktivität des Annehmers 125 abläuft, wird der Initiator 120 die Sequenzsitzung beenden bzw. terminieren. Der zweite Zeitgeber wird mit einem Zeitintervall festgelegt, das der KAET 150 gleicht. Wenn dieser zweite Zeitgeber abläuft, wird der Initiator 120 eine Lebenserhaltungsnachricht 115 zu dem Annehmer 125 senden und wird den zweiten Zeitgeber mit einem Zeitgeberintervall der KAI 145 zurücksetzen. Des Weiteren wird der zweite Zeitgeber mit einem Zeitintervall der KAI 145 auf die Ab- bzw. Ausläufe der nachfolgenden zweiten Zeitgeber hin zurückgesetzt (d. h. nach jedem Verstreichen der KAI 145 – Zeitintervalle ohne dem Erhalten einer Nachricht). Wann immer eine Nachricht 130, 135 von dem Annehmer 125 empfangen wird, wird der Initiator 120 den zweiten Zeitgeber mit einem Zeitintervall, das der KAET 150 gleicht, zurücksetzen und der Prozess wird wiederholt.
  • Beachte, dass während des Wartens auf ein Senden einer Lebenserhaltungsnachricht 115 eine Anwendungsnachricht für den Initiator 120 zum Versenden zur Verfügung gestellt werden kann. Dies kann auftreten, weil die Anwendung des Initiators 120 eine Nachricht versendet hat oder weil der Algorithmus für einen Wiederholungsversuch des Initiators 120 bestimmt hat, dass es Zeit war, eine gepufferte Anwendungsnachricht wieder zu versenden. Wenn dies auftritt, sorgen die Ausführungsbeispiele dafür, dass der Initiator 120 ein KAI 145 – Intervall (oder möglicherweise die KAET 150) neu starten wird. In anderen Worten wird der Initiator 120 eine weitere Lebenserhaltungsnachricht 115 nicht senden, bis ein Intervall der KAI 145 (oder KAET 150) vergangen ist, seitdem die Anwendungsnachricht versandt wurde. Dementsprechend wird der Initiator 120 wenigstens jedes KAI 145-Intervall irgendeine Form von Nachricht versenden, entweder Anwendung- oder Infrastrukturnachricht. Des Weiteren werden Lebenserhaltungsnachrichten 115 typischerweise sogar dann versendet, wenn Anwendungsnachrichten aus irgendeinem Grund, d. h. Netzwerkstau, blockiert werden.
  • Beachte, dass andere Ausführungsformen es einer Bestätigungsnachfrage-Nachricht 115 erlauben, einer gesendeten Anwendungsnachricht hinzugefügt zu werden. Diese Ausführungsform kann z. B. verwendet werden, wenn die IT 140 im Begriff ist abzulaufen, um den Annehmer 125 zu benachrichtigen, ein Versenden einer Bestätigungsant wort oder Bestätigung 130 eher zu beschleunigen als abzuwarten, eine Ladung oder einen Stapel von Nachrichten zu bestätigen. In diesem Falle würde die Bestätigungsnachfrage 115 im Allgemeinen als ein Protokollelement dargestellt werden (z. B. eine Überschrift oder ein anderer Indikator, der durch ein RM-WS-Protokoll definiert ist, z. B. WS-RM), das mit der Anwendungsnachricht 135 beinhaltet ist. Als solches sollte eine "Bestätigungsnachfragenachricht 115'' weit ausgelegt oder interpretiert werden, um Fälle miteinzuschließen, in denen die Bestätigungsnachfrage 115 ein oben beschriebenes Protokollelement ist.
  • Andere Ausführungsformen lassen es zu, für jede aus einer Vielzahl von Sequenzsitzungen in einer einzelnen Nachricht eine Bestätigungsnachfrage 115 entsprechend des RM-WS-Protokolls zu beinhalten (z. B. eine Anwendung oder Infrastruktur, z. B. Bestätigungsnachfrage-Nachrichten 115). Ebenso lassen andere Ausführungsformen es zu, eine Bestätigungsantwort 130 für jede aus einer Vielzahl von Sequenzsitzungen in einer einzelnen Nachricht entsprechend des RM-WS-Protokolls in einer einzelnen Nachricht zu beinhalten (z. B. Anwendung 135 oder Infrastrukturnachrichten, z. B. Bestätigungsnachricht 130). Dies erlaubt es, auf den Empfang einer einzelnen Nachricht hin die Lebendigkeit einer Vielzahl von Sequenzen zu verifizieren, wodurch die Anzahl der Nachrichten reduziert wird, die dazu benötigt werden, die Lebendigkeit einer Vielzahl von Sequenzen zwischen den gleichen Endpunkten 120, 125 aufrechtzuerhalten.
  • Die vorliegende Erfindung kann auch mit Begriffen von Verfahren beschrieben werden, die funktionelle Schritte und/oder nicht funktionelle Aktionen umfassen. Das Nachfolgende ist eine Beschreibung von Schritten und/oder Aktionen, die bei der Anwendung der vorliegenden Erfindung ausgeführt werden können. Üblicherweise beschreiben funktionelle Schritte die Erfindung im Sinne der Ergebnisse, die erreicht werden, wohingegen nicht funktionelle Aktionen eher spezifische Aktionen zum Erreichen eines bestimmten Ergebnisses beschreiben. Obwohl die funktionellen Schritte und/oder nicht funktionellen Aktionen in einer bestimmten Abfolge beschrieben oder beansprucht werden können, ist die vorliegende Erfindung nicht nötigerweise beschränkt auf eine bestimmte Abfolge oder Kombination von Schritten und/oder Aktionen. Des Weiteren werden die Anwendung der Schritte und/oder Aktionen in der Rezitierung der Ansprüche und der folgenden Beschreibung für die Flussdiagramme der 3 und 4 benutzt, um die gewünschte spezifische Verwendung von solchen Begriffen aufzuzeigen.
  • 3 und 4 stellen Flussdiagrammbeispiele für verschiedene beispielhafte Ausführungsformen der vorliegenden Erfindung dar. Die folgende Beschreibung der 3 und 4 wird gelegentlich auf die entsprechenden Elemente aus den 1A und 1B Bezug nehmen. Obwohl auf ein spezifisches Element aus diesen Figuren Bezug genommen werden kann, werden solche Elemente nur für illustrative Zwecke verwendet und sind nicht dazu gedacht, den Umfang der vorlegenden Erfindung zu begrenzen oder auf eine andere Art und Weise einzuschränken, wenn dies nicht ausdrücklich beansprucht wird.
  • 3 stellt ein Flussdiagrammbeispiel eines Verfahrens 300 zum Verifizieren der Verbindungslebendigkeit für eine Sequenzsitzung zwischen Endpunktanwendungen dar, wobei ein RM-WS-Protokoll verwendet wird. Das Verfahren 300 beinhaltet einen Schritt des Einrichtens 305 einer Sequenzsitzung zwischen zwei Endpunkten. Zum Beispiel kann eine Sequenzsitzung zwischen einem Initiator 120 und einem Annehmer 125 in Übereinstimmung mit einem RM-WS-Protokoll (z. B. WS-verlässliche Benachrichtigung) eingerichtet werden. Das Verfahren 300 beinhaltet des Weiteren einen Schritt des Identifizierens 310 einer Inaktivitätsauszeit. Zum Beispiel kann ein Verbindungsverifikationsmodul 105 verwendet werden, um die Inaktivitätsauszeit (IT) 140 zu erkennen, wobei die Inaktivitätsauszeitperiode eine obere Zeitgrenze darstellt, die vergehen kann, ohne dass eine Nachricht zwischen dem Initiator 120 und dem Annehmer 125 für die Sequenzsitzung ausgetauscht wird. Diese IT 140 kann einstellbar sein, um solche Dinge wie die durch das Kommunikationsmedium oder das Wissen um die Zuverlässigkeit des zugrundeliegenden Netzwerkes eingebrachte Latenz zuzulassen.
  • Bevor eine Inaktivitätsauszeitperiode abläuft, beinhaltet das Verfahren 300 einen Schritt bzw. eine Aktion des Empfangens 315 einer Nachricht, die einen einzigartigen Sequenzidentifizierer enthält. Zum Beispiel kann entweder der Initiator 120 oder der Annehmer 125 eine Nachricht zum Verifizieren der Verbindungslebendigkeit erhalten, wobei die Nachricht einen einzigartigen Sequenzidentifizierer enthält, der zu der Sequenzsitzung gehört. Die empfangene Nachricht, die den einzigartigen Sequenzidentifizierer enthält, kann eine Anwendungsnachricht 135 sein. Alternativ kann die empfangene Nachricht eine Infrastrukturnachricht 115, 130 sein. Zum Beispiel wenn die Nachricht von dem Initiator 120 empfangen wird, kann die Nachricht eine Bestätigung 130 als Antwort auf eine Bestätigungsanfrage 115 sein, die zuvor von dem Initiator 120 versendet wurde. Wenn die Nachricht von dem Annehmer 125 empfangen wird, dann kann die Nachricht eine Sequenzbestätigungsnach frage 115 sein. Unbeachtet dessen, ob die Nachrichten Anwendungsebene- oder Infrastrukturnachrichten sind, erlauben es andere Ausführungsformen einer einzelnen Nachricht, Bestätigungsnachfragen (z. B. Bestätigungsnachfrage 115) oder Bestätigungen (z. B. Bestätigung 130) für eine Vielzahl von Sequenzsitzungen zu beinhalten. Zusätzlich wird die Bestätigungsnachfrage 115 typischerweise in ein Protokollelement mitaufgenommen, z. B. eine Überschrift oder ein anderes Feld der Nachricht, im Falle, dass die Bestätigungsnachfrage 115 in einer Nachricht auf Anwendungsebene enthalten ist.
  • Basierend auf der empfangenen Nachricht beinhaltet das Verfahren 300 des Weiteren einen Schritt des Zurücksetzens 320 eines Inaktivitätszeitgebers. Zum Beispiel kann der Initiator 120 den Zeitgeber 110 innerhalb des Verbindungsverifikationsmoduls 105 zurücksetzen, wenn die Nachricht im Initiator empfangen wird. Eine Inaktivitätsauszeitperiode kann dann erneut bzw. wiederholt berechnet werden und der Prozess wird wiederholt. Wenn keine Anwendungs- oder Infrastrukturnachrichten nach dem Zurücksetzen des Inaktivitätszeitgebers empfangen werden, kann die Sequenzsitzung vor dem Ablauf der Inaktivitätsauszeitperiode verlassen werden.
  • Die 4 zeigt ein Flussdiagramm eines Verfahrens 400 zum Aufrechterhalten einer Verbindungslebendigkeit durch einen Initiator für eine Sequenzsitzung zwischen Endpunkten, wobei ein RM-WS-Protokoll verwendet wird. Das Verfahren 400 beinhaltet einen Schritt des Einrichtens 305 einer Sequenzsitzung zwischen zwei Endpunkten. Zum Beispiel kann eine durch einen einzigartigen Sequenzidentifizierer identifizierte Sequenzsitzung zwischen einem Initiator 120 und einem Annehmer 125 in Übereinstimmung mit einem RM-WS-Protokoll (z. B. WS-verlässliches Benachrichtigen) errichtet werden. Um die Sequenzsitzung zu errichten, wird der Initiator 120 typischerweise eine Nachfrage zur Einrichtung von einer oder mehreren Sequenzsitzungen in Übereinstimmung mit einem RM-WS-Protokoll an den Annehmer 125 senden. Basierend auf dieser Nachfrage kann der Annehmer 125 einen oder mehrere einzigartige Sequenzidentifizierer generieren (z. B. einen globalen einzigartigen Identifizierer, Global Unique Identifier – GUID), der dazu verwendet werden wird, die erschaffene Sequenzsitzung bzw. die Sitzungen zu identifizieren.
  • Auch ist zu beachten, dass andere Wege des Errichtens einer Sequenzsitzung der vorliegenden Erfindung zur Verfügung stehen. Zum Beispiel kann der Initiator 120 den oder die einzigartigen Sequenzidentifizierer generieren und sie in der Nachfrage zum Erschaffen der Sequenzsitzung bzw. der Sitzungen an den Annehmer 125 senden. In der Tat gibt es viele andere wohlbekannte Wege zum Einrichten einer Sequenzsitzung, die der vorliegenden Erfindung zur Verfügung stehen. Dementsprechend wird jeder spezifische Bezug darauf, wie eine Sequenzsitzung errichtet wird, nur für Darstellungszwecke verwendet und ist nicht dazu gedacht, den Umfang der vorliegenden Erfindung zu begrenzen oder anderweitig zu schmälern, soweit dies nicht ausdrücklich beansprucht wird.
  • Unbeachtet dessen, wie die Sequenzsitzung eingerichtet wurde, beinhaltet das Verfahren 400 des Weiteren einen Schritt des Identifizierens 415 einer Inaktivitätsauszeitperiode für die Sequenzsitzung. Zum Beispiel kann ein Verbindungsverifikationsmodul 105 eine Inaktivitätsauszeit (IT) erkennen, die eine obere Zeitgrenze für die Zeit darstellt, die vergehen darf, ohne dass eine Nachricht für die Sequenzsitzung empfangen wird. Diese IT 140 kann basierend auf solchen Dingen wie der Zuverlässigkeit des Transportnetzwerkes oder anderen Berücksichtigungen, so wie eine minimale erwartete Latenz zum Empfangen einer Bestätigung, einstellbar sein.
  • Das Verfahren 400 beinhaltet des Weiteren einen Schritt des Berechnens 417 einer Lebenserhaltungsablaufauszeit. Zum Beispiel kann das Verbindungsverifikationsmodul 105 einen Algorithmus verwenden, der auf der Inaktivitätsauszeitperiode 140 zum Berechnen einer Lebenserhaltungsablaufauszeit 150 (keep alive expiration time – KAET) basiert, die typischerweise ein Bruchteil einer Intervallauszeit 140 ist. Basierend auf der berechneten Lebenserhaltungsablaufauszeit beinhaltet das Verfahren 400 des Weiteren einen Schritt des Versendens einer Nachricht, die einen einzigartigen Sequenzidentifizierer beinhaltet. Die Nachricht kann eine Infrastrukturnachricht (z. B. Bestätigungsnachfrage 115) oder eine Anwendungsnachricht 135 sein. Zum Beispiel kann ein Initiator 120 auf den Ablauf der KAET 150 hin eine Bestätigungsnachfragenachricht 115 verwenden, die eine idempotente Infrastrukturnachricht ist, die durch das RM-WS-Protokoll definiert ist. Unbeachtet dessen, ob die gesendete Nachricht eine Nachricht auf Anwendungsebene oder eine Infrastrukturnachricht ist, lassen andere Ausführungsformen es zu, dass die Nachricht Bestätigungsnachfragen (z. B. Bestätigungsnachfrage 115) für eine Vielzahl von Sequenzsitzungen beinhaltet.
  • Als Nächstes beinhaltet das Verfahren 400 den Schritt des Empfangens 422 einer Nachricht, die einen einzigartigen Sequenzidentifizierer beinhaltet. Das heißt, dass der Initiator 120 eine Bestätigungsantwort 130 oder eine Anwendungsnachricht 135 von dem Annehmer 125 erhält, die einen einzigartigen Sequenzidentifizierer beinhaltet. Wenn die Nachricht (Infrastruktur- oder Anwendungsnachricht, z. B. 130, 135) vor der Inaktivitätsaus zeitperiode 140 empfangen wird, wird die Verbindungslebendigkeit der Sequenzsitzung aufrechterhalten. Basierend auf der empfangenen Nachricht beinhaltet das Verfahren 400 des Weiteren einen Schritt des Zurücksetzens 425 eines Inaktivitätszeitgebers. Das heißt, basierend auf der erhaltenen Bestätigungsantwort 130 oder Anwendungsnachricht 135 kann der Inaktivitätszeitgeber 110 innerhalb des Verbindungsverifikationsmoduls 105 für die Inaktivitätsauszeit 140 zurückgesetzt werden, so dass die Sequenzsitzung am Leben gehalten wird.
  • Es ist auch zu beachten, dass die empfangene Nachricht eine Nachricht auf Anwendungsebene sein könnte. In solch einem Fall kann eine Bestätigungsantwort 130 in der Nachricht auf Anwendungsebene enthalten sein. Unbeachtet dessen, ob die erhaltene Nachricht eine Nachricht auf Anwendungsebene oder Infrastrukturebene ist, können andere Ausführungsformen es zulassen, dass die Nachricht Bestätigungen (z. B. Bestätigung 130) für eine Vielzahl von Sequenzsitzungen beinhaltet.
  • Es ist auch zu beachten, dass die Bestätigungsnachfrage-Nachricht 115 zu Nachrichten gehören kann, die bereits bestätigt wurden, als sie vom Annehmer 125 empfangen wurden. In anderen Worten kann die Bestätigungsnachfrage-Nachricht 115 sogar dann gesendet werden, wenn alle Nachrichten als empfangen bestätigt wurden. Des Weiteren können zu dem Annehmer zu versendende Anwendungsnachrichten blockiert werden, aber die Bestätigungsnachfrage-Nachricht 115 sollte sowieso gesendet werden.
  • Es ist weiter zu beachten, dass der Algorithmus zum Berechnen der KAET 150 auf einem Bruchteil (N) der Inaktivitätsauszeit 140 basiert ist. Zum Beispiel kann der Bruchteil der Inaktivitätsauszeit 140, der zum Berechnen der KAET 150 verwendet wird, eine Hälfte der Inaktivitätsauszeit 140 sein, so dass eine ursprüngliche Bestätigungsnachfrage- oder Lebenserhaltungsnachricht 115 verwendet wird, wenn ein Inaktivitätszeitgeber 110 eine Hälfte der IT 140 erreicht. Des Weiteren sorgen Ausführungsbeispiele für eine Erkennung einer maximalen Wiederholungsversuchszählung (Maximum Retry Count – MRC) 155, die eine maximale Anzahl von Malen darstellt, die Anwendungs- und Infrastrukturnachrichten 115 noch einmal versendet werden. Basierend auf der maximalen Wiederholungsversuchszählung 155 kann ein Lebenserhaltungsintervall (keep alive interval – KAI) 145 berechnet werden, das die Zeitperiode zum Versenden von Nachrichten darstellt. Dementsprechend werden eine oder mehrere Nachrichten versendet, die auf der berechneten KAI 145 basieren, wobei die versendeten Nachrichten die Bestätigungsnachfrage-Nachricht 115 beinhal ten sollten. Selbstverständlich können die versendeten, auf der KAI 145 basierenden Nachrichten, wie oben beschrieben ist, Anwendungsnachrichten sein. Des Weiteren ist zu beachten, dass die Inaktivitätsauszeit 140 basierend auf einer festgelegten Zuverlässigkeit eines Transportnetzwerkes oder anderen Überlegungen einstellbar ist.
  • Ausführungsformen innerhalb des Umfanges der vorliegenden Erfindung enthalten auch computerlesbare Medien zum Tragen oder zum Speichern von computerausführbaren Instruktionen oder Datenstrukturen, die darauf gespeichert sind. Solche computerlesbaren Medien können jegliche verfügbaren Medien sein, die einem Allzweckcomputer oder einem Computer für spezielle Zwecke zugänglich sind. Zum Zwecke eines Beispiels, aber nicht als Einschränkung, können solche computerlesbaren Medien ein RAM, ROM, EEPROM, eine CD-ROM oder andere optische Speicherplatten (optical discs), magnetische Speicherplatten (magnetic disc storage) oder andere magnetische Speichervorrichtungen oder irgendein anderes Medium, das zum Tragen oder Speichern von gewünschten Mitteln eines Programmcodes in der Form von computerausführbaren Instruktionen oder Strukturen sein, die für einen Allzweckcomputer oder Computer für spezielle Zwecke zugänglich sein können. Wenn Informationen über ein Netzwerk oder andere Kommunikationsverbindungen (entweder kabelgebunden, kabellos oder eine Kombination von kabelgebundenen oder kabellos) zu einem Computer übertragen oder ihm zur Verfügung gestellt werden, betrachtet der Computer diese Verbindung eigentlich als computerlesbares Medium. Folglich wird jede einer solcher Verbindungen eigentlich als ein computerlesbares Medium bezeichnet. Kombinationen des Obengenannten sollten auch innerhalb des Umfangs von computerlesbaren Medien enthalten sein. Computerausführbare Instruktionen beinhalten zum Beispiel Instruktionen und Daten, die einen Allzweckcomputer, einen Computer für spezielle Zwecke oder Vorrichtungen für spezielle Verarbeitungen dazu veranlassen, eine bestimmte Funktion oder eine Gruppe von Funktionen auszuführen.
  • Die 2 und die folgende Diskussion sind dazu gedacht, eine kurze, generelle Beschreibung einer passenden Computerumgebung zur Verfügung zu stellen, in der die Erfindung implementiert werden kann. Obwohl dies nicht benötigt wird, wird die Erfindung in dem allgemeinen Kontext computerausführbarer Instruktionen, so wie Programmmodulen, die von Computern in einer Netzwerkumgebung ausgeführt werden, beschrieben werden. Generell beinhalten Programmmodule Routinen, Programme, Objekte, Komponenten, Datenstrukturen etc., die bestimmte Aufgaben ausführen oder bestimmte abstrakte Datentypen implementieren. Computerausführbare Instruktionen, assoziierte Datenstrukturen und Programmmodule repräsentieren Beispiele von Programmiercodemitteln zum Ausführen von Schritten von den hierin offenbarten Verfahren. Die bestimmte Sequenz bzw. Abfolge von solchen ausführbaren Instruktionen oder assoziierten Datenstrukturen repräsentiert Beispiele von korrespondierenden Schritten oder Aktionen zum Implementieren der Funktionen, die in solchen Schritten beschrieben sind.
  • Fachmänner werden Verständnis dafür haben, dass die Erfindung Computernetzwerkumgebungen mit vielen Arten von Computersystemkonfigurationen ausgeführt werden kann, die Personalcomputer, in der Hand gehaltene Vorrichtungen (hand-held devices), Multiprozessorsysteme, mikroprozessorbasierte oder programmierbare Konsumentenelektronik, Netzwerk PCs, Minicomputer, Mainframe-Computer bzw. Haupt- oder Großrechner oder Ähnliches sein können. Die Erfindung kann auch in einer verteilten Computerumgebung angewendet werden, wobei die Aufgaben bei lokalen und abseits liegenden Bearbeitungsvorrichtungen durchgeführt werden können, die durch ein Kommunikationsnetzwerk verbunden sind (entweder durch Kabelverbindung, kabellose Verbindungen oder durch eine Kombination von kabelgebundenen- und kabellosen Verbindungen). In einer verteilten Computerumgebung können sich Programmmodule sowohl in lokalen als auch abseits liegenden Speichervorrichtungen befinden.
  • Mit Bezug auf die 2 beinhaltet ein beispielhaftes System zur Implementierung der Erfindung eine Computervorrichtung für allgemeine Zwecke in Form eines konventionellen Computers 220, der eine Prozessoreinheit 221, einen Systemspeicher 222 und eine Systemdatenübertragungseinrichtung (system bus) 223 beinhaltet, die verschiedene Systemkomponenten miteinander verbindet, was eine Verbindung des Systemspeichers 222 mit der Prozessoreinheit 221 beinhaltet. Die Datenübertragungseinrichtung 223 kann eine von mehreren verschiedenen Datenübertragungsstrukturen sein, was eine Speicherübertragungseinrichung (memory bus) oder eine Speicherkontrolleinrichtung, eine periphere Datenübertragungseinrichtung und eine lokale Datenübertragungseinrichtung unter Verwendung einer Vielzahl von Datenübertragungseinrichtungsarchitekturen (Bus-Architekturen) beinhaltet. Der Systemspeicher beinhaltet einen nur lesbaren Speicher (Read Only Memory – ROM) 224 und einen Speicher für beliebige Zugriffe (Random Access Memory – RAM) 225. Ein Basisein- und Ausgabesystem (Basic Input/Output System – BIOS) 226, das die Basisroutinen beinhaltet, die zum Transfer von Informationen zwischen den Elementen in nerhalb des Computers 220 verhilft, so wie während des Startprozesses, der in dem ROM 224 gespeichert sein kann.
  • Der Computer 220 kann auch einen magnetischen Festplattenspeicher 227 beinhalten, von dem auf einer magnetischen Festplatte 239 gelesen und gespeichert werden kann, so wie ein magnetischen Laufwerk 228, um von entnehmbaren magnetischen Scheiben bzw. Platten 229 zu lesen oder diese zu beschreiben und ein optisches Laufwerk 30, um auf entnehmbaren optischen Scheiben 231 so wie CD-ROMs oder anderen optischen Medien zu lesen oder diese zu beschreiben. Das magnetische Festplattenlaufwerk 227, das magnetische Laufwerk 228 und das optische Laufwerk 30 sind mit der Systemdatenübertragungseinrichtung 223 jeweils über eine Festplattenschnittstelle 232, eine Magnetscheibenlaufwerksschnittstelle 233 und eine optische Laufwerksschnittstelle verbunden. Die Laufwerke und die assoziierten computerlesbaren Medien sorgen für eine nicht flüchtige Speicherung von von einem Computer ausführbaren Instruktionen, Datenstrukturen, Programmmodulen und anderen Daten für den Computer 220. Obwohl das Ausführungsbeispiel, das hierin beschrieben wird, eine magnetische Festplatte 239, eine entnehmbare magnetische Scheibe 229 und entnehmbare optische Scheiben 231 verwendet, können andere Typen von computerlesbaren Medien zum Speichern von Daten verwendet werden, die magnetische Kassetten, Flash-Speicherkarten, digital vielseitig einsetzbare Scheiben (digital versatile disks – DVD), Bernoulli Magazine (Bernoulli cartridges), RAMs, ROMs und Ähnliches beinhalten.
  • Programmcodemittel umfassen ein oder mehrere Programmmodule, die auf der Festplatte 239, der magnetischen Scheibe 229, der optischen Scheibe 231, dem ROM 224 oder RAM 225 gespeichert sein können und beinhalten ein Betriebssystem 235, ein oder mehrere Anwendungsprogramme 236, andere Programmmodule 237 und Programmdaten 238. Ein Anwender kann Befehle und Informationen über eine Tastatur 240, eine Anzeigevorrichtung 242 oder andere Eingabevorrichtungen (nicht gezeigt), so wie ein Mikrofon, einen Steuerknüppel, eine Spielesteuerungsvorrichtung (game pad), eine Satellitenschüssel, einen Scanner oder Ähnliches in den Computer eingeben. Diese und andere Eingabevorrichtungen sind oft durch eine mit der Systemdatenübertragungseinrichtung 223 verbundene serielle Anschlussschnittstelle (serial Port) 246 mit der Prozessoreinheit 221 verbunden. Alternativ können die Eingabevorrichtungen bzw. Geräte über andere Schnittstellen, so wie einen parallelen Anschluss (parallel port), einen Spieleanschluss (game port) oder eine uni verselle serielle Datenübertragungseinrichtung (Universal Serial Bus – USB) verbunden sein. Ein Monitor 247 oder andere Anzeigevorrichtungen sind auch mit der Systemdatenübertragungseinrichtung 223 über eine Schnittstelle, so wie einem Videoadapter 248, verbunden. Zusätzlich zu dem Monitor, erhalten Personalcomputer typischerweise andere periphere Ausgabegeräte (nicht gezeigt), so wie Lautsprecher und Drucker.
  • Der Computer 220 kann in einer Netzwerkumgebung betrieben werden, die logische Verbindungen zu einem oder mehreren fernabliegenden (remote) Computern, so wie der fernabliegende Computer 249a und 249b, verbunden sein. Fernabliegende Computer 249a und 249b können jeweils ein anderer Personalcomputer, ein Server, ein Verteiler (Router), ein Netzwerk-PC, ein gleichrangiger Verbindungspartner (peer device) oder andere allgemeine Netzwerkknoten sein und beinhalten typischerweise viele oder alle von den Elementen, die oben mit Bezug auf den Computer 220 beschrieben wurden, obwohl nur Speichervorrichtungen 250a und 250b und ihre assoziierten Anwendungsprogramme 236a und 236b in der 2 dargestellt wurden. Die logischen Verbindungen, die in 2 dargestellt sind, beinhalten ein lokales Netzwerk (Local Area Network – LAN) 251 und ein weiträumiges Netzwerk (Wide Area Network – WAN) 252 und sind hier beispielhaft und nicht limitierend dargestellt. Solche Netzwerkumgebungen sind alltäglich in büroweiten oder betriebsweiten Computernetzwerken, internen Netzwerken (Intranets) und dem Internet.
  • Wenn der Computer 220 in einer LAN-Netzwerkumgebung verwendet wird, ist der Computer mit dem lokalen Netzwerk 251 über eine Netzwerkschnittstelle oder einen Adapter 253 verbunden. Wenn der Computer in einer WAN-Netzwerkumgebung verwendet wird, kann der Computer ein Modem 254, eine kabellose Verbindung oder andere Mittel zur Errichtung einer Kommunikation über ein weitflächiges Netzwerk 252, so wie das Internet, beinhalten. Das Modem 254, das intern oder extern sein kann, ist mit der Systemdatenübertragungseinrichtung 223 über die serielle Anschlussschnittstelle 246 verbunden. In einer vernetzten Umgebung können als zu dem Computer 220 gehörende oder als Teile davon dargestellte Programmmodule in der fernabliegenden Speichervorrichtung gespeichert sein. Es wird offensichtlich sein, dass die gezeigten Netzwerkverbindungen beispielhaft sind und dass andere Mittel zur Errichtung einer Kommunikation über ein großflächiges bzw. weiträumiges Netzwerk 252 verwendet werden können.
  • Die vorliegende Erfindung kann in anderen spezifischen Formen ausgeführt werden, ohne von ihren essentiellen Charakteristiken abzuweichen. Die beschriebenen Ausfüh rungsformen sind in allen Bezügen nur als darstellend und nicht als einschränkend zu betrachten. Der Umfang der Erfindung ist dementsprechend mehr durch die angehängten Ansprüche als durch die vorangegangene Beschreibung dargestellt. Alle Veränderungen, die innerhalb der Bedeutung und in die Reichweite des Äquivalenzbereichs der Ansprüche kommen, sind in ihren Umfang mitaufzunehmen.

Claims (46)

  1. Verfahren zum Aufrechterhalten einer Verbindungslebendigkeit für eine Sequenzsitzung zwischen Endpunkten durch Verwenden eines verlässlichen Nachrichtenprotokolls (RM) für Netzdienste (WS), im Folgenden RM-WS-Protokoll genannt, bei einem Initiator-Computersystem in einer WS-Umgebung, das Verfahren umfassend die Schritte: Einrichten einer Sequenzsitzung, die durch einen einzigartigen Sequenzidentifizierer identifiziert wird, auf einer Anwendungsebene zwischen zwei Endpunktanwendungen in Übereinstimmung mit einem RM-WS-Protokoll; Identifizieren einer Inaktivitätsauszeitperiode für die Sequenzsitzung, wobei die Inaktivitätsauszeitperiode eine obere Zeitgrenze für die Zeit darstellt, die ohne ein Empfangen einer Nachricht für die Sequenzsitzung vergehen darf; Empfangen einer Nachricht, die den einzigartigen Sequenzidentifizierer beinhaltet, vor der Inaktivitätsauszeitperiode, die die Verbindungslebendigkeit aufrechterhält; und basierend auf der empfangenen Nachricht, Zurücksetzen eines Inaktivitätszeitgebers für die Inaktivitätsauszeitperiode, so dass die Sequenzsitzung am Leben gehalten wird, gekennzeichnet durch ein Berechnen einer Lebenserhaltungsablaufauszeit in Übereinstimmung mit einem Algorithmus, der auf der Inaktivitätsauszeitperiode basiert; ein Versenden einer Nachricht basierend auf der berechneten Lebenserhaltungsablaufauszeit, die den einzigartigen Sequenzidentifizierer beinhaltet.
  2. Das Verfahren nach Anspruch 1, worin die empfangene Nachricht, die den einzigartigen Sequenzidentifizierer beinhaltet, eine Applikationsebenennachricht ist.
  3. Das Verfahren nach Anspruch 2, worin die Applikationsebenenachricht Bestätigungsantworten für eine oder mehrere Sequenzsitzungen beinhaltet.
  4. Das Verfahren nach Anspruch 1, worin die versendete Nachricht, die den einzigartigen Sequenzidentifizierer beinhaltet, eine Bestätigungsnachfragenachricht ist, die eine durch das RM-WS-Protokoll definierte infrastruktur-idempotente Nachricht ist, und worin die empfangene Nachricht eine Infrastrukturbestätigungsnachricht als Antwort auf die Bestätigungsnachfragenachricht ist.
  5. Das Verfahren nach Anspruch 4, worin die Bestätigungsnachfragenachricht zu einer oder mehreren Nachrichten entspricht, die bereits von einem Annehmer als empfangen bestätigt wurden.
  6. Das Verfahren nach Anspruch 4, worin die Bestätigungsnachfragenachricht Bestätigungsnachfragen für eine Vielzahl von Sequenzsitzungen beinhaltet, und worin die empfangene Nachricht eine Vielzahl von Bestätigungsantworten für die Vielzahl von Sequenzsitzungen beinhaltet.
  7. Das Verfahren nach Anspruch 1, worin der Initiator nicht adressierbar ist und der Initiator mit einem Annehmer durch SOAP über HTTP kommuniziert.
  8. Das Verfahren nach Anspruch 1, worin die versendete Nachricht, die den einzigartigen Sequenzidentifizierer beinhaltet, eine Bestätigungsnachfragenachricht ist, die eine durch das RM-WS-Protokoll definierte idempotente Infrastrukturnachrichten ist, und worin zu einem Annehmer zu versendende Anwendungsnachrichten blockiert werden, aber die Bestätigungsnachfragenachrichten trotzdem versendet wird.
  9. Das Verfahren nach Anspruch 1, worin der Algorithmus zum Berechnen der Lebenserhaltungsablaufauszeit des Weiteren auf einem Bruchteil der Inaktivitätsauszeitperiode basiert.
  10. Das Verfahren nach Anspruch 9, worin die versendete Nachricht, die den einzigartigen Sequenzidentifizierer beinhaltet, eine Bestätigungsnachfragenachricht ist, der eine durch das RM-WS-Protokoll definierte infrastruktur-idempotente Nachricht ist, und worin der Bruchteil der Inaktivitätsauszeitperiode, der zum Berechnen der Lebenserhaltungsablaufauszeit verwendet wird, eine Hälfte der Inaktivitätsauszeitperiode ist, so dass die Bestätigungsnachfragenachricht gesendet wird, wenn der Inaktivitätszeitgeber eine Hälfte der Inaktivitätsauszeitperiode erreicht.
  11. Das Verfahren nach Anspruch 9, des Weiteren beinhaltend die Schritte: Identifizieren einer maximale Wiederholungsversuchsanzahl, die eine maximale Anzahl von Malen ist, die Applikations- und Infrastrukturnachrichten versendet werden; und Berechnen eines Lebenserhaltungsintervalls, basierend auf der maximalen Wiederholungsversuchsanzahl, wobei das Lebenserhaltungsintervall eine Zeitperiode zum Versenden von Nachrichten repräsentiert; und Versenden einer oder mehrerer Nachrichten, die den einzigartigen Sequenzidentifizierer beinhalten, basierend auf dem berechneten Lebenserhaltungsintervall, worin die eine oder die mehreren versendeten Nachrichten wenigstens eine von einer Applikationsebenenachricht oder einer Bestätigungsnachfragenachricht beinhalten.
  12. Das Verfahren nach Anspruch 11, worin die Inaktivitätsauszeitperiode einstellbar ist, um eine durch das Kommunikationsmedium auferlegte Latenz zuzulassen.
  13. Das Verfahren nach Anspruch 11, worin das RM-WS-Protokoll WSReliableMessaging ist.
  14. Das Verfahren nach Anspruch 1, worin die versendete Nachricht eine Anwendungsebenennachricht ist.
  15. Das Verfahren nach Anspruch 14, worin eine Bestätigungsnachfragenachricht mit der Anwendungsebenenachricht versendet wird, wobei die Bestätigungsnachfragenachricht eine durch das RM-WS-Protokoll definierte Infrastruktur-idempotente Nachricht ist und dazu verwendet wird, die Bestätigungsantwort von einem Annehmer voranzutreiben.
  16. Das Verfahren nach Anspruch 1, worin nach dem Ablauf der Inaktivitätsauszeitperiode keine Anwendungs- oder Infrastrukturnachricht erhalten wird und die Sequenzsitzung verlassen wird.
  17. Ein Verfahren zum Verifizieren einer Verbindungslebendigkeit für eine Sequenzsitzung zwischen Endpunktanwendungen durch ein Verwenden eines verlässlichen Nachrichtenprotokolls (RM) für Netzdienste (WS), im Folgenden als RM-WS-Protokoll bezeich net, auf einem Computersystem in einer WS-Umgebung, das Verfahren umfassen die Schritte: Einrichten einer Sequenzsitzung, die durch einen einzigartigen Sequenzidentifizierer identifiziert wird, auf einer Anwendungsebene zwischen zwei Endpunktanwendungen in Übereinstimmung mit einem RM-WS-Protokoll; Identifizieren einer Inaktivitätsauszeitperiode, wobei die Inaktivitätsauszeitperiode eine obere Zeitgrenze für die Zeit darstellt, die vergehen darf, ohne dass eine Nachricht für die Sequenzsitzung zwischen den beiden Endpunkten ausgetauscht wird; Erhalten einer Nachricht zum Verifizieren der Verbindungslebendigkeit bevor die Inaktivitätsauszeitperiode abläuft, wobei die Nachricht einen einzigartigen Sequenzidentifizierer beinhaltet, der zu der Sequenzsitzung gehört; und basierend auf der erhaltenen Nachricht, Zurücksetzen eines Inaktivitätszeitgebers für die Inaktivitätsauszeitperiode beinhaltet, so dass die Sequenzsitzung am Leben gehalten wird.
  18. Das Verfahren nach Anspruch 17, worin die erhaltene Nachricht, die den einzigartigen Sequenzidentifizierer beinhaltet, eine Anwendungsnachricht ist.
  19. Das Verfahren nach Anspruch 18, worin die Anwendungsnachricht Bestätigungsantworten für eine oder mehrere Sequenzsitzungen beinhaltet, die zu dem einzigartigen Sequenzidentifizierer gehörende Sequenzsitzung miteingeschlossen.
  20. Das Verfahren nach Anspruch 17, worin die erhaltene Nachricht von einem Initiator der Sequenzsitzung erhalten wird, und worin die erhaltene Nachricht eine Infrastrukturbestätigungsnachricht als Antwort auf die zuvor von dem Initiator versendete Bestätigungsnachfragenachricht ist.
  21. Das Verfahren nach Anspruch 20, worin die Infrastrukturbestätigungsnachricht Bestätigungen für eine Vielzahl von Sequenzsitzungen zwischen dem Initiator und dem Annehmer beinhaltet.
  22. Das Verfahren nach Anspruch 20, worin der Initiator nicht adressierbar ist und der Initiator mit einem Annehmer durch SOAP über HTTP kommuniziert.
  23. Das Verfahren nach Anspruch 17, worin die erhaltene Nachricht von einem Annehmer von der Sequenzsitzung erhalten wird, und wobei die erhaltene Nachricht eine Sequenzbestätigungsnachfrage ist.
  24. Das Verfahren nach Anspruch 17, worin die Inaktivitätsauszeitperiode einstellbar ist, um eine von dem Kommunikationsmedium auferlegte Latenz zuzulassen.
  25. Das Verfahren nach Anspruch 17, worin nach dem Zurücksetzen des Inaktivitätszeitgebers nach dem Ablauf der Inaktivitätsauszeitperiode keine Anwendungs- oder Infrastrukturnachrichten empfangen werden und die Sequenzsitzung verlassen wird.
  26. Ein Computerprogrammprodukt zum Implementieren eines Verfahrens zum Aufrechterhalten einer Verbindungslebendigkeit für eine Sequenzsitzung zwischen Endpunkten durch das Verwenden eines verlässlichen Nachrichtenprotokolls (RM) für Netzdienste (WS), im Folgenden RM-WS-Protokoll genannt, auf einem Initiatorcomputersystem in einer WS-Umgebung, wobei das Computerprogrammprodukt ein oder mehrere computerlesbare Medien umfasst, die computerausführbare Anweisungen auf sich gespeichert haben, die, wenn sie durch einen Prozessor ausgeführt werden, das Benachrichtigungssystem veranlassen, das Folgende auszuführen: Einrichten einer Sequenzsitzung, die durch einen einzigartigen Sequenzidentifizierer identifiziert wird, auf einer Anwendungsebene zwischen zwei Endpunktanwendungen in Übereinstimmung mit einem RM-WS-Protokoll; Identifizieren einer Inaktivitätsauszeitperiode für die Sequenzsitzung, wobei die Inaktivitätsauszeitperiode eine obere Zeitgrenze für die Zeit darstellt, die ohne ein Empfangen einer Nachricht für die Sequenzsitzung vergehen darf; Empfangen einer Nachricht, die den einzigartigen Sequenzidentifizierer beinhaltet, vor der Inaktivitätsauszeitperiode, wobei die Nachricht die Verbindungslebendigkeit aufrechterhält; und basierend auf der empfangenen Nachricht, Zurücksetzen eines Inaktivitätszeitgebers für die Inaktivitätsauszeitperiode, so dass die Sequenzsitzung am Leben gehalten wird, gekennzeichnet durch Berechnen einer Lebenserhaltungsablaufauszeit in Übereinstimmung mit einem Algorithmus, der auf der Inaktivitätsauszeitperiode basiert; basierend auf der berechneten Lebenserhaltungsablaufauszeit, Versenden einer Nachricht, die den einzigartigen Sequenzidentifizierer beinhaltet.
  27. Das Computerprogrammprodukt nach Anspruch 26, worin die empfangene Nachricht, die den einzigartigen Sequenzidentifizierer beinhaltet, eine Applikationsebenennachricht ist.
  28. Das Computerprogrammprodukt nach Anspruch 26, worin die versendete Nachricht, die den einzigartigen Sequenzidentifizierer beinhaltet, eine Bestätigungsnachfragennachricht ist, die eine durch das RM-WS-Protokoll definierte infrastruktur-idempotente Nachricht ist, und worin die empfangene Nachricht eine Infrastrukturbestätigungsnachricht als Antwort auf die Bestätigungsnachfragenachricht ist.
  29. Das Computerprogrammprodukt nach Anspruch 26, worin die Bestätigungsnachfragenachricht zu einer oder mehreren Nachrichten gehört, die bereits von einem Annehmer als empfangen bestätigt wurden.
  30. Das Computerprogrammprodukt nach Anspruch 26, worin der Initiator nicht adressierbar ist und mit dem Annehmer durch SOAP über HTTP kommuniziert.
  31. Das Computerprogrammprodukt 26, worin die versendete Nachricht, die den einzigartigen Sequenzidentifizierer beinhaltet, eine Bestätigungsnachfragenachricht ist, die eine durch das RM-WS-Protokoll definierte infrastruktur-idempotente Nachricht ist, und worin zu einem Annehmer zu versendende Anwendungsnachricht blockiert werden, aber die Bestätigungsnachfragenachricht trotzdem versendet wird.
  32. Das Computerprogrammprodukt nach Anspruch 26, worin der Algorithmus zum Berechnen der Lebenserhaltungsablaufauszeit des Weiteren auf einem Bruchteil der Inaktivitätsauszeitperiode basiert.
  33. Das Computerprogrammprodukt nach Anspruch 32, worin die versendete Nachricht, die den einzigartigen Sequenzidentifizierer beinhaltet, eine Bestätigungsnachfragenachricht ist, die eine durch das RM-WS-Protokoll definierte infrastruktur-idempotente Nachricht ist, und worin der Bruchteil der Inaktivitätsauszeitperiode, die zum Berech nen der Lebenserhaltungsablaufauszeit verwendet wird, eine Hälfte der Inaktivitätsauszeitperiode ist, so dass die Bestätigungsnachfragenachricht gesendet wird, wenn der Inaktivitätszeitgeber eine Hälfte der Inaktivitätsauszeitperiode erreicht.
  34. Das Computerprogrammprodukt nach Anspruch 32, das des Weiteren von einem Computer ausführbare Instruktionen beinhaltet, die das Benachrichtigungssystem veranlassen können, das Folgende durchzuführen: Identifizieren einer maximalen Wiederholungsversuchsanzahl, die eine maximale Anzahl von Malen ist, die Applikations- und Infrastrukturnachrichten versendet werden; und Berechnen eines Lebenserhaltungsintervalls, basierend auf der maximalen Wiederholungsversuchsanzahl, wobei das Lebenserhaltungsintervall eine Zeitperiode zum Versenden von Nachrichten repräsentiert; und Versenden einer oder mehrerer Nachrichten, die den einzigartigen Sequenzidentifizierer beinhalten, basierend auf dem berechneten Lebenserhaltungsintervall, worin die eine oder die mehreren versendeten Nachrichten wenigstens eine von einer Applikationsebenenachricht oder einer Bestätigungsnachfragenachricht beinhalten.
  35. Das Computerprogrammprodukt nach Anspruch 34, worin die Inaktivitätsauszeitperiode einstellbar ist, um eine durch das Kommunikationsmedium auferlegte Latenz zuzulassen.
  36. Das Computerprogrammprodukt nach Anspruch 34, worin das RM-WS-Protokoll WSReliableMessaging ist.
  37. Das Computerprogrammprodukt nach Anspruch 26, worin nach dem Ablauf der Inaktivitätsauszeitperiode keine Anwendungs- oder Infrastrukturnachricht erhalten wird und die Sequenzsitzung verlassen wird.
  38. Das Verfahren nach Anspruch 1, worin die versendete Nachricht eine Anwendungsebenennachricht ist.
  39. Das Computerprogrammprodukt nach Anspruch 38, worin eine Bestätigungsnachfragenachricht mit der Anwendungsebenennachricht versendet wird, wobei die Bestäti gungsnachfragenachricht eine durch das RM-WS-Protokoll definierte infrastrukturidempotente Nachricht ist und dazu verwendet wird, die Bestätigungsantwort von einem Annehmer voranzutreiben.
  40. Ein Computerprogrammprodukt zum Implementieren eines Verfahrens zum Verifizieren einer Verbindungslebendigkeit für eine Sequenzsitzung zwischen Endpunktanwendungen durch ein Verwenden eines verlässlichen Nachrichtenprotokolls (RM) für Netzdienste (WS), im Folgenden als RM-WS-Protokoll bezeichnet, auf einem Computersystem in einer WS-Umgebung, wobei das Computerprogrammprodukt ein oder mehrere computerlesbare Medien umfasst, die auf sich von einem Computer ausführbare Instruktionen gespeichert haben, die, wenn sie von einem Prozessor ausgeführt werden, das Benachrichtigungssystem veranlassen können, das Folgende durchzuführen: Einrichten einer Sequenzsitzung, die durch einen einzigartigen Sequenzidentifizierer identifiziert wird, auf einer Anwendungsebene zwischen zwei Endpunktanwendungen in Übereinstimmung mit einem RM-WS-Protokoll; Identifizieren einer Inaktivitätsauszeitperiode, wobei die Inaktivitätsauszeitperiode eine obere Zeitgrenze für die Zeit darstellt, die vergehen darf, ohne dass eine Nachricht für die Sequenzsitzung zwischen den beiden Endpunkten ausgetauscht wird; Erhalten einer Nachricht zum Verifizieren der Verbindungslebendigkeit bevor die Inaktivitätsauszeitperiode abläuft, wobei die Nachricht einen einzigartigen Sequenzidentifizierer beinhaltet, der zu der Sequenzsitzung gehört; und Zurücksetzen eines Inaktivitätszeitgeber für die Inaktivitätsauszeitperiode, basierend auf der erhaltenen Nachricht, so dass die Sequenzsitzung am Leben gehalten wird.
  41. Das Computerprogrammprodukt nach Anspruch 40, worin die erhaltene Nachricht, die den einzigartigen Sequenzidentifizierer beinhaltet, eine Anwendungsnachricht ist.
  42. Das Computerprogrammprodukt nach Anspruch 40, worin die erhaltene Nachricht von einem Initiator der Sequenzsitzung erhalten wird, und worin die erhaltene Nachricht eine Infrastrukturbestätigungsnachricht als Antwort auf die zuvor von dem Initiator versendete Bestätigungsnachfragenachricht ist.
  43. Das Computerprogrammprodukt nach Anspruch 42, worin der Initiator nicht adressierbar ist und der Initiator mit einem Annehmer durch SOAP über HTTP kommuniziert.
  44. Das Computerprogrammprodukt nach Anspruch 40, worin die erhaltene Nachricht von einem Annehmer von der Sequenzsitzung erhalten wird, und wobei die erhaltene Nachricht eine Sequenzbestätigungsfrage ist.
  45. Das Computerprogrammprodukt nach Anspruch 40, worin die Inaktivitätsauszeitperiode einstellbar ist, um eine von dem Kommunikationsmedium k auferlegte Latenz zuzulassen.
  46. Das Computerprogrammprodukt nach Anspruch 40, worin nach dem Zurücksetzen des Inaktivitätszeitgebers nach dem Ablauf der Inaktivitätsauszeitperiode keine Anwendungs- oder Infrastrukturnachrichten empfangen werden und die Sequenzsitzung verlassen wird.
DE602005005613T 2004-12-08 2005-11-09 Überprüfen und Aufrechterhalten der Lebhaftigkeit einer Verbindung in einer Web Services Umgebung mit zuverlässiger Nachrichtenübermittlung Active DE602005005613T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US7372 1993-04-21
US11/007,372 US7899921B2 (en) 2004-12-08 2004-12-08 Verifying and maintaining connection liveliness in a reliable messaging for web services environment

Publications (2)

Publication Number Publication Date
DE602005005613D1 DE602005005613D1 (de) 2008-05-08
DE602005005613T2 true DE602005005613T2 (de) 2008-07-17

Family

ID=35871142

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602005005613T Active DE602005005613T2 (de) 2004-12-08 2005-11-09 Überprüfen und Aufrechterhalten der Lebhaftigkeit einer Verbindung in einer Web Services Umgebung mit zuverlässiger Nachrichtenübermittlung

Country Status (7)

Country Link
US (1) US7899921B2 (de)
EP (1) EP1670213B1 (de)
JP (1) JP4972304B2 (de)
KR (1) KR101169086B1 (de)
CN (1) CN1787497B (de)
AT (1) ATE390793T1 (de)
DE (1) DE602005005613T2 (de)

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10225471A1 (de) * 2002-06-10 2003-12-18 Philips Intellectual Property Verfahren und Chipeinheit zum Überwachen des Betriebs einer Mikrocontrollereinheit
US7899921B2 (en) 2004-12-08 2011-03-01 Microsoft Corporation Verifying and maintaining connection liveliness in a reliable messaging for web services environment
US8438633B1 (en) 2005-04-21 2013-05-07 Seven Networks, Inc. Flexible real-time inbox access
WO2006136661A1 (en) * 2005-06-21 2006-12-28 Seven Networks International Oy Network-initiated data transfer in a mobile network
WO2006136660A1 (en) * 2005-06-21 2006-12-28 Seven Networks International Oy Maintaining an ip connection in a mobile network
US8731542B2 (en) 2005-08-11 2014-05-20 Seven Networks International Oy Dynamic adjustment of keep-alive message intervals in a mobile network
US7716360B2 (en) * 2005-09-21 2010-05-11 Sap Ag Transport binding for a web services message processing runtime framework
US7711836B2 (en) * 2005-09-21 2010-05-04 Sap Ag Runtime execution of a reliable messaging protocol
US7761533B2 (en) * 2005-09-21 2010-07-20 Sap Ag Standard implementation container interface for runtime processing of web services messages
US7716279B2 (en) * 2005-09-21 2010-05-11 Sap Ag WS addressing protocol for web services message processing runtime framework
US7721293B2 (en) * 2005-09-21 2010-05-18 Sap Ag Web services hibernation
US7788338B2 (en) 2005-09-21 2010-08-31 Sap Ag Web services message processing runtime framework
US20070067461A1 (en) * 2005-09-21 2007-03-22 Savchenko Vladimir S Token streaming process for processing web services message body information
US7606921B2 (en) * 2005-09-21 2009-10-20 Sap Ag Protocol lifecycle
US8745252B2 (en) * 2005-09-21 2014-06-03 Sap Ag Headers protocol for use within a web services message processing runtime framework
US7921208B2 (en) * 2005-10-24 2011-04-05 Sap Aktiengesellschaft Network time out handling
US7698409B2 (en) * 2006-12-22 2010-04-13 Nokia Corporation Method and an apparatus for executing timed network operations
WO2008120332A1 (ja) * 2007-03-28 2008-10-09 Pioneer Corporation コンテンツ配信システム及びその制御方法
CN101286860B (zh) * 2007-04-13 2010-12-22 联想(北京)有限公司 一种维护终端门户会话的方法、系统及终端服务门户装置
US8631425B2 (en) * 2007-05-16 2014-01-14 Sap Ag Method for processing of application transaction in a web services framework
US20080307056A1 (en) * 2007-06-07 2008-12-11 Vladimir Videlov Web Services Reliable Messaging
US8811575B2 (en) 2007-06-13 2014-08-19 I D You, Llc Delivering additional information to receiving parties for text messaging based caller ID
US11297180B2 (en) 2007-06-13 2022-04-05 First Orion Corp. Method and system for providing additional information to called parties
US8548140B2 (en) 2007-06-13 2013-10-01 I D You, Llc Providing audio announcement to called parties
US8625762B1 (en) 2007-06-13 2014-01-07 Accudata Technologies, Inc. Providing additional information to called parties
US8488754B1 (en) 2007-10-17 2013-07-16 Accudata Technologies, Inc. IP-enabled information delivery
US10958781B2 (en) 2007-06-13 2021-03-23 First Orion Corp. Providing audio content to a device
US8879702B1 (en) 2007-10-17 2014-11-04 Accudata Technologies, Inc. Method and system for providing additional information to called parties
US8156219B2 (en) * 2007-08-03 2012-04-10 At&T Intellectual Property I, L.P. System and method of health monitoring and fault monitoring in a network system
US11811966B2 (en) 2007-10-17 2023-11-07 First Orion Corp. IP-enabled information delivery
US8315990B2 (en) * 2007-11-08 2012-11-20 Microsoft Corporation Consistency sensitive streaming operators
US8099505B2 (en) * 2008-03-26 2012-01-17 Microsoft Corporation Aggregating connection maintenance to optimize resource consumption
US20100088325A1 (en) 2008-10-07 2010-04-08 Microsoft Corporation Streaming Queries
WO2010068949A2 (en) * 2008-12-12 2010-06-17 Tekelec Methods, systems, and computer readable media for regulating network address translator (nat) and firewall pinhole preservation traffic in a session initiation protocol (sip) network
US8375134B2 (en) * 2009-06-08 2013-02-12 Microsoft Corporation Determining an efficient keep-alive interval for a network connection
US20100329127A1 (en) * 2009-06-30 2010-12-30 Computer Associates Think, Inc. Network entity self-governing communication timeout management
US8954502B1 (en) * 2009-08-06 2015-02-10 Marvell International Ltd. Infrastructure devices in peer-to-peer environments
US8370443B2 (en) * 2009-09-08 2013-02-05 Microsoft Corporation Reliable messaging using publish subscribe mechanism
US9268877B2 (en) * 2009-09-22 2016-02-23 Telefonaktiebolaget L M Ericsson (Publ) Method and arrangements for enabling modifications of XML documents
US8132184B2 (en) * 2009-10-21 2012-03-06 Microsoft Corporation Complex event processing (CEP) adapters for CEP systems for receiving objects from a source and outputing objects to a sink
US8195648B2 (en) * 2009-10-21 2012-06-05 Microsoft Corporation Partitioned query execution in event processing systems
US8413169B2 (en) * 2009-10-21 2013-04-02 Microsoft Corporation Time-based event processing using punctuation events
US9158816B2 (en) 2009-10-21 2015-10-13 Microsoft Technology Licensing, Llc Event processing with XML query based on reusable XML query template
US8417737B2 (en) 2010-10-20 2013-04-09 Microsoft Corporation Online database availability during upgrade
US8751656B2 (en) 2010-10-20 2014-06-10 Microsoft Corporation Machine manager for deploying and managing machines
US8296267B2 (en) 2010-10-20 2012-10-23 Microsoft Corporation Upgrade of highly available farm server groups
US8386501B2 (en) 2010-10-20 2013-02-26 Microsoft Corporation Dynamically splitting multi-tenant databases
US8799453B2 (en) 2010-10-20 2014-08-05 Microsoft Corporation Managing networks and machines for an online service
US9075661B2 (en) 2010-10-20 2015-07-07 Microsoft Technology Licensing, Llc Placing objects on hosts using hard and soft constraints
US8850550B2 (en) 2010-11-23 2014-09-30 Microsoft Corporation Using cached security tokens in an online service
US9721030B2 (en) 2010-12-09 2017-08-01 Microsoft Technology Licensing, Llc Codeless sharing of spreadsheet objects
EP2485457A1 (de) 2011-02-04 2012-08-08 Siemens Aktiengesellschaft Verfahren zur Aufrechterhaltung einer Live-Internetsitzung in einer Internetanwendung
US9497098B2 (en) * 2011-03-25 2016-11-15 Commscope Technologies Llc Event-monitoring in a system for automatically obtaining and managing physical layer information using a reliable packet-based communication protocol
AU2012237675B2 (en) 2011-03-25 2016-09-08 Adc Telecommunications, Inc. Identifier encoding scheme for use with multi-path connectors
US8949496B2 (en) 2011-03-25 2015-02-03 Adc Telecommunications, Inc. Double-buffer insertion count stored in a device attached to a physical layer medium
US8429280B2 (en) * 2011-04-28 2013-04-23 Time Warner Cable Inc. Systems and methods for maintaining a measure of session time on a networked device
US8806250B2 (en) 2011-09-09 2014-08-12 Microsoft Corporation Operating system management of network interface devices
US9049660B2 (en) 2011-09-09 2015-06-02 Microsoft Technology Licensing, Llc Wake pattern management
US8892710B2 (en) * 2011-09-09 2014-11-18 Microsoft Corporation Keep alive management
US8713097B2 (en) 2011-09-30 2014-04-29 Alcatel Lucent Adaptive period network session reservation
US9025475B1 (en) * 2012-01-16 2015-05-05 Amazon Technologies, Inc. Proactively retransmitting data packets in a low latency packet data network
JP2016507913A (ja) * 2012-10-29 2016-03-10 イカノス・コミュニケーションズ・インコーポレイテッドIkanos Communications,Inc. 時分割デュプレクスシステムにおいてタイミング回復を容易にするメカニズム
FR3000336A1 (fr) 2012-12-20 2014-06-27 France Telecom Mecanisme de gestion d'une session de communication
TWI483603B (zh) * 2013-03-08 2015-05-01 宏碁股份有限公司 維持連線方法及應用該方法之電子裝置
US9065763B2 (en) 2013-03-15 2015-06-23 Schweitzer Engineering Laboratories, Inc. Transmission of data over a low-bandwidth communication channel
US9270109B2 (en) * 2013-03-15 2016-02-23 Schweitzer Engineering Laboratories, Inc. Exchange of messages between devices in an electrical power system
US9620955B2 (en) 2013-03-15 2017-04-11 Schweitzer Engineering Laboratories, Inc. Systems and methods for communicating data state change information between devices in an electrical power system
GB2519118A (en) * 2013-10-10 2015-04-15 Ibm Web page reload
US10516743B1 (en) * 2015-03-24 2019-12-24 Quest Software Inc. Systems and methods for facilitating portable user sessions
CN105933375B (zh) * 2016-03-30 2019-12-24 广州华多网络科技有限公司 一种连麦会话的监测方法、装置和服务器
US10575248B2 (en) 2016-12-28 2020-02-25 Nanning Fugui Precision Industrial Co., Ltd. Wireless sensing network communication method
KR20180123391A (ko) * 2017-05-08 2018-11-16 (주)에프씨아이 접속확인 패킷 전송 제어방법 및 장치
CN108874654B (zh) * 2017-05-15 2022-08-16 创新先进技术有限公司 幂等有效性测试方法、装置及设备、可读介质
CN107835454B (zh) * 2017-11-03 2020-04-17 青岛海信电器股份有限公司 基于WebApp的超时处理方法、装置及存储介质
JP6740274B2 (ja) * 2018-03-29 2020-08-12 日本電信電話株式会社 情報処理装置、情報処理方法、および、情報処理プログラム
US10887287B2 (en) * 2018-05-11 2021-01-05 Citrix Systems, Inc. Connecting client devices to anonymous sessions via helpers
US10536828B1 (en) * 2018-10-01 2020-01-14 Ford Global Technologies, Llc Keeping radio resource control activity after SMS wakeup
US10819727B2 (en) 2018-10-15 2020-10-27 Schweitzer Engineering Laboratories, Inc. Detecting and deterring network attacks
CN111343700A (zh) * 2018-12-19 2020-06-26 南宁富桂精密工业有限公司 无线传感网络通信方法
EP3968601B1 (de) * 2020-09-11 2024-05-08 Volkswagen Ag Synchronisation einer kommunikation zwischen einem fahrzeug und einer backend-vorrichtung durch verwendung einer hash-meldung
EP3968600A1 (de) * 2020-09-11 2022-03-16 Volkswagen Ag Steuerung einer kommunikation zwischen einem fahrzeug und einer backend-vorrichtung

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4635187A (en) * 1983-12-19 1987-01-06 At&T Bell Laboratories Control for a multiprocessing system program process
US5699511A (en) * 1995-10-10 1997-12-16 International Business Machines Corporation System and method for dynamically varying low level file system operation timeout parameters in network systems of variable bandwidth
JP3185760B2 (ja) * 1998-06-26 2001-07-11 日本電気株式会社 分散処理システム、サーバ、クライアント、遠隔処理起動方法および記録媒体
US7103806B1 (en) * 1999-06-04 2006-09-05 Microsoft Corporation System for performing context-sensitive decisions about ideal communication modalities considering information about channel reliability
JP2001060155A (ja) * 1999-08-20 2001-03-06 Fujitsu Ltd メッセージ処理装置
US7213063B2 (en) * 2000-01-18 2007-05-01 Lucent Technologies Inc. Method, apparatus and system for maintaining connections between computers using connection-oriented protocols
US6976071B1 (en) * 2000-05-03 2005-12-13 Nortel Networks Limited Detecting if a secure link is alive
JP2001331386A (ja) * 2000-05-24 2001-11-30 Nec Corp システム構成作成支援サービスシステム及びその方法
US7562147B1 (en) * 2000-10-02 2009-07-14 Microsoft Corporation Bi-directional HTTP-based reliable messaging protocol and system utilizing same
KR100459126B1 (ko) 2002-01-09 2004-12-03 엘지전자 주식회사 통신망의 세션 유지 제어 방법
JP2004246873A (ja) * 2003-01-23 2004-09-02 Ricoh Co Ltd 情報処理装置および情報処理方法
US7676580B2 (en) 2003-03-27 2010-03-09 Microsoft Corporation Message delivery with configurable assurances and features between two endpoints
JP3882917B2 (ja) * 2003-04-03 2007-02-21 日本アイ・ビー・エム株式会社 情報処理システム、情報処理装置及びプログラム
US7584274B2 (en) * 2004-06-15 2009-09-01 International Business Machines Corporation Coordinating use of independent external resources within requesting grid environments
US7899921B2 (en) 2004-12-08 2011-03-01 Microsoft Corporation Verifying and maintaining connection liveliness in a reliable messaging for web services environment

Also Published As

Publication number Publication date
EP1670213A1 (de) 2006-06-14
KR101169086B1 (ko) 2012-07-26
JP2006164252A (ja) 2006-06-22
KR20060064517A (ko) 2006-06-13
CN1787497A (zh) 2006-06-14
DE602005005613D1 (de) 2008-05-08
CN1787497B (zh) 2011-11-16
JP4972304B2 (ja) 2012-07-11
US7899921B2 (en) 2011-03-01
US20060123119A1 (en) 2006-06-08
ATE390793T1 (de) 2008-04-15
EP1670213B1 (de) 2008-03-26

Similar Documents

Publication Publication Date Title
DE602005005613T2 (de) Überprüfen und Aufrechterhalten der Lebhaftigkeit einer Verbindung in einer Web Services Umgebung mit zuverlässiger Nachrichtenübermittlung
DE60312355T2 (de) Dynamisches peer tunneling mit leistungsoptimierung
DE60019640T2 (de) Digitales Rechnersystem und Verfahren zur Beantwortung von über ein externes Netzwerk empfangenen Anfragen
DE69733498T2 (de) Verteiltes rechnersystem und verfahren zur aufteilung von benutzeranfragen auf duplizierte netzwerkserver
DE602004008415T2 (de) System und Verfahren zum Aufrechterhalten der Netzwerkverbindung
DE69930992T2 (de) Verfahren und Rechnerprogrammprodukt zum effizienten und sicheren Senden von kleinen Datennachrichten von einem Sender zu einer grossen Anzahl von Empfangssystemen
DE60002396T2 (de) Verbindungsauswahlverfahren
DE60317588T2 (de) Verfahren zur Ermittlung der peer-to-peer Servicequalität (QOS)
EP3035634B1 (de) Telekommunikationsanordnung und verfahren zum herstellen einer rtc-verbindung zwischen einem ersten endpunkt und einem zweiten endpunkt
EP2826224B1 (de) Zugriff von clients auf einen serverdienst mittels einer opc-ua
CN110557437B (zh) 基于自定义协议的普适性拟态分发表决调度装置及方法
DE112020001459T5 (de) Konsistente Route-Ankündigungen zwischen redundanten Controllern im globalen Netzwerk-Access-Point
DE102007011071B4 (de) Verfahren zur Verbesserung eines TCP Datenübertragungsprozesses im Fall einer Unterbrechung des physikalischen Übertragungsmediums
JP4575980B2 (ja) コンピュータシステムにおける通信のための方法、システム、及びコンピュータプログラム
DE602004004601T2 (de) Verteilung von Mitgliedschaftsinformationen für Mehrfachteilnehmersitzungen auf der Applikationsebene
DE112010005474T5 (de) Vorrichtung und Verfahren zum Zuordnen von Nutzern für Online-Sitzungen
DE60307000T2 (de) System und Verfahren für die Verwaltung von mehreren Protokollstacks
CN101370035A (zh) 用于动态客户端/服务器网络管理的方法以及系统
DE10205108A1 (de) System und Verfahren zum Zugreifen auf Softwarekomponenten in einer verteilten Netzwerkumgebung
DE60304100T2 (de) Erzwingung eines Zeitpunktes zur Trennung einer Kommmunikationsverbindung mit schnurlosen Endgeräten mit transienten Netzwerkadressen
DE112004001819B4 (de) Endpunkt-Registrierung mit lokaler Verzögerungszeit in einem Rufabwicklungssystem
DE10231958A1 (de) Direkt adressiertes Multicast-Protokoll
WO2015185505A1 (de) Verfahren zur verteilung von tasks zwischen computersystemen, computernetz-infrastruktur sowie computerprogramm-produkt
DE602004005059T2 (de) Computernetzwerk zum identifizieren mehrerer knoten, mit demselben etikett übereinstimmen
DE60306425T2 (de) Verfahren zur garantierten ablieferung von snmp-traps über ein grossflächiges netzwerk

Legal Events

Date Code Title Description
8364 No opposition during term of opposition