DE10116640B4 - Auf URL beruhende Token für schwierige Verteilungen, die einen serverseitigen Cookiebehälter benutzen - Google Patents

Auf URL beruhende Token für schwierige Verteilungen, die einen serverseitigen Cookiebehälter benutzen Download PDF

Info

Publication number
DE10116640B4
DE10116640B4 DE10116640A DE10116640A DE10116640B4 DE 10116640 B4 DE10116640 B4 DE 10116640B4 DE 10116640 A DE10116640 A DE 10116640A DE 10116640 A DE10116640 A DE 10116640A DE 10116640 B4 DE10116640 B4 DE 10116640B4
Authority
DE
Germany
Prior art keywords
server
url
client system
session
key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE10116640A
Other languages
English (en)
Other versions
DE10116640A1 (de
Inventor
Christopher A.S Gage
John R. Hind
Marcia L. Peters
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.)
A10 Networks Inc
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE10116640A1 publication Critical patent/DE10116640A1/de
Application granted granted Critical
Publication of DE10116640B4 publication Critical patent/DE10116640B4/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

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/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/10015Access to distributed or replicated servers, e.g. using brokers

Abstract

Verfahren zur Herstellung einer dauerhaften Beziehung zwischen einem Client-System und einem Server, wobei der Server aus einer Vielzahl von Servern stammt, die von einem Dispatcher verwaltet werden, und das Client-System unter Benutzung eines Universellen Ressourcen-Lokalisierers (URL) auf den Server zugreift, bei dem der Dispatcher eine Informationsanforderung vom Client-System empfängt und bestimmt, welcher aus der Vielzahl von Servern für die Erfüllung der Anforderung auszuwählen ist; dadurch gekennzeichnet, – dass der ausgewählte Server ein Token erzeugt, das wenigstens einen Bezeichner für den ausgewählten Server, eine Datums-Zeit-Markierung und einen Schlüssel umfasst, wobei der Schlüssel für den Zugriff auf einen Speicherbereich für Informationen bezüglich der dauerhaften Beziehung zum Client-System verwendet wird; – dass das Token in den URL eingefügt wird; und – dass der ausgewählte Server eine Antwort mit dem in den URL eingefügten Token zum Client-System sendet, um das Client-System für die Dauer einer Sitzung an diesen...

Description

  • Hintergrund der Erfindung
  • In den 90er Jahren sind Computer-Netzwerke exponentiell gewachsen. Das Internet und das World Wide Web (”Weltweites Netz”) haben jedem den Zugriff auf außergewöhnlich große Informationsmengen erlaubt. Sie haben es den Leuten auch ermöglicht, eine Menge ihrer täglichen Geschäfte, zum Beispiel Einkaufen oder Forschung, über das Internet auszuführen. Während der Einkaufssaison 1999 machten verschiedene große Kaufhäuser und Spielzeugläden bessere Geschäfte, wenn ihre Läden eigentlich geschlossen waren, als wenn sie geöffnet waren; dies rührte von ihrer Präsenz im Internet her. Ihre Internet-Webstandorte erlaubten es ihren Kunden, sich die Produkte anzuschauen, die sie anbieten, nach bestimmten Produkten zu suchen, über die Produkte zu lesen, Bestellungen aufzugeben und Lieferinformationen anzusehen, alles das, nachdem die Kinder ruhig zu Bett gebracht wurden. Dies war für einen großen Teil der Industrie eine ziemliche Überraschung. Die Händler mussten die Größe und die Anzahl ihrer Server erhöhen, um den gesamten Verkehr mit den Nutzern zu Hause zu unterstützen. Einige mussten beträchtliche Mengen an neuer Hardware installieren, zum Beispiel Netzwerk-Dispatcher, um Anfragen an ihre Server zu leiten, an redundante oder Sicherungsserver, damit die Antwortzeit für die Nutzer nicht unerträglich lang wurde.
  • Dies ist nur eines der vielen Beispiele dafür, wie das Internet wächst und wie der Zugriff auf Informationen über das Internet die heutige Gesellschaft beeinflusst. Die Nutzer gewöhnen sich daran, nahezu unmittelbar eine Antwort von Computer-Netzwerken zu erhalten und tolerieren keine Verzögerungen. Wenn sich die Anzahl der Nutzer des Internets erhöht, muss sich auch die Anzahl der redundanten Server und Netzwerk-Dispatcher erhöhen, die diese Server verwalten, um die Qualität der Dienstleistung aufrechtzuerhalten, die die Kunden erwarten. Netzwerk-Dispatcher werden benutzt, um Anfragen an einen Server zu verwalten und die Arbeit auf mehrere redundante Server zu verteilen, wobei eine vorher festgelegte Belastungsausgleichs-Methodologie (loadbalancing methodology) verwendet wird.
  • Ein typisches Netzwerk-Dispatchersystem ist in 6 dargestellt. Wenn die Endnutzereinheit 601 Informationen von einem Server anfordert, der einen vorgelagerten (front-end) Netzwerk-Dispatcher 603 aufweist, empfängt der Netzwerk-Dispatcher die Anforderung und leitet sie zu einem der redundanten nachgelagerten (back-end) Server 605, 607, 609 weiter. Wenn der Netzwerk-Dispatcher 603 anschließend eine weitere Anfrage von der Endnutzereinheit 601 empfängt, durchläuft er wieder seinen Auswahlprozess, um einen kontinuierlichen Ausgleich der Belastung aufrechtzuerhalten. Dies ist die Funktion eines Netzwerk-Dispatchers, so wie sie entworfen wurde.
  • Die Verwendung des traditionellen Netzwerk-Dispatchers kann ein Problem werden, wenn ein Nutzer, der wegen einer ersten Anfrage zu einem Server geleitet wurde, wegen wiederholter Anfragen auf Grund der Informationsspeicherung zu dem gleichen Server geleitet werden muss. Dies ist im Falle des Händlers so, wenn ein Nutzer auf den Webstandort des Händlers gelangt und beginnt, eine Bestellung aufzugeben. Nachdem das erste Produkt in einen Einkaufskorb gelegt wurde, müssen die Produkte gespeichert werden, so dass der Nutzer weiter einkaufen und eine erfolgreiche Bestellung aufgeben kann.
  • Genauer gesagt wollen wir annehmen, dass eine Menge (cluster) von Webservern gleichartige Dienste zur Verfügung stellen, mit einem vorgelagerten Netzwerkbelastungs-Ausgleichssystem. Die Aufgabe des Belastungs-Ausgleichssystems besteht darin, auf der Grundlage von Entscheidungsmechanismen, die außerhalb des Bereiches dieser Erörterung liegen, einlaufende Pakete zu dem am wenigsten belegten Server zu leiten. Eine vereinfachte Version hiervon ist in 1 dargestellt, wo ein Mobilfunktelefon 101 auf Informationen in redundanten Servern 109 zugreift, unter Benutzung einer drahtlosen Verbindung 115 zu einer Mobilfunkstation (cellular tower) 105, danach einer Landverbindung 117 zu einem Dispatcher 107, danach zu den Informationsservern 109, während ein Notebook-Computer 103 auch auf Informationen in den gleichen Servern 109 zugreift. Es entsteht das Problem, wie die Belastung auszugleichen ist, unter der Voraussetzung, dass ein Client, zum Beispiel das Mobilfunktelefon 101, für alle Ströme, die eine Sitzung oder eine Arbeitseinheit ausmachen, zu einem bestimmten Server 109 im Cluster zurückkehren muss. Dies wird als das ”schwierige Verteilungs-”Problem (sticky routing problem) bezeichnet.
  • In dem vorliegenden Dokument ist eine ”Sitzung” definiert als eine Folge von zusammengehörigen Transaktionen, die eine Arbeitseinheit ausführen sollen. Eine Sitzung benutzt im Allgemeinen HTTP-(Hyper-text transfer protocol oder HTTPS-(secure hyper-text transfer protocol Ströme, die aus einer oder mehreren TCP/IP-(transmission control protocol/Internet protocol bestehen. Eine einfache elektronische Geschäftstransaktion besteht typischerweise aus einer Folge von zusammengehörigen Aktionen, zum Beispiel Browsen in einem Online-Katalog, Auswahl von einem oder mehreren Handelsprodukten, Aufgeben der Bestellung, Bereitstellung von Bezahlungs- und Versand-Informationen und schließlich Bestätigung oder Abbruch der gesamten Transaktion. Die Informationen über den Stand der Sitzung können mehrere TCP/IP-Verbindungen überdecken, da Informationen wie zum Beispiel die Identität des Kunden, das gewünschte Produkt, der vereinbarte Preis, Bezahlungsinformationen usw. gespeichert sein müssen, bis die gesamte Transaktion abgeschlossen ist.
  • Wenn ein bestimmter Client eine Sitzung mit einem bestimmten Server hat, gibt es Zustandsinformationen über diese Sitzung nur auf diesem bestimmten Server. In diesem Fall muss ein Belastungs-Ausgleichssystem zusätzliche Intelligenz aufwenden, um die Pakete korrekt zu verteilen. Insbesondere muss es den gleichen Server wiederholt als Ziel aller Pakete auswählen, die von einem bestimmten Client für eine bestimmte Sitzung oder Transaktion ankommen. Diese Client-Server-Beziehung wird als ”Bindung” bezeichnet. Um die Belastung zeitlich wirksam auszugleichen, muss das System auch die Bindung des Client an einen bestimmten Server zwischen den Sitzungen oder Transaktionen freigeben.
  • Früher war eine Quell-IP-Adresse eindeutig genug, um für diese Art der ”schwierigen” Verteilung zur Unterscheidung benutzt zu werden. Bei der gegenwärtigen Technologie ist die Quell-IP-Adresse auf Grund der weitverbreiteten Verwendung von NAT (Network Address Translation und SSL (Secure Sockets Lager nicht länger als Verteilungs-Token nützlich. Network Address Translation (NAT) wurde in großem Rahmen von ISPs (Internet Service Providers) als Mittel zur Verbindung der großen Anzahl von Nutzern verwendet, die das Internet zu Hause verwenden, ohne dabei eine größere Anzahl registrierter Adressen zu benutzen (da die registrierten Adressen eine begrenzte Ressource und demzufolge teuer sind) und die Vertraulichkeit der IP-Adressen von einzelnen Teilnehmern zu schützen. Die Spezifikationen von NAT sind in dem RFC (Request for Comment) 1631 der IETF (Internet Engineering Task Force) dargestellt. Die NAT-Realisierungen platzieren Netzwerkadress-Übersetzer 503 an die Grenzen der Stub-Bereiche (stub domains), so wie in 5 dargestellt. Jede NAT-Box weist eine Tabelle auf, die aus Paaren lokaler IP-Adressen und global eindeutiger Adressen besteht. Die IP-Adressen innerhalb des Stub-Bereiches sind nicht global eindeutig. Sie werden auch in anderen Bereichen benutzt. Die NAT kann ohne Änderungen an den Routern (Verteilern) 501 oder den Wirtsrechnern installiert werden, was sie für schnell wachsende ISPs sehr attraktiv macht.
  • Die ISPs benutzen auch das DHCP (Dynamic Host Configuration Protocol, RFC-Nummer xxxx) oder das PPP (Point-to-Point Protocol, RFC-Nummer xxxx), um Kundensystemen dynamisch private Adressen zuzuordnen und transparente Proxy-Server zu benutzen (für Dinge wie das World-Wide Web, Nachrichten und Multimedia-Informationen), als eine Möglichkeit, den Backbone-Verkehr zu minimieren. NAT, DHCP/PPP und transparente Proxy-Server lösten die Adressierungsprobleme in sich erweiternden, immer verbundenen Haushaltsnetzwerken, reduzierten die Kosten der Backbones der Anbieter und halfen, die Hacker daran zu hindern, Vorteile aus den offenen Anschlüsse zu den Nutzersystemen zu ziehen, aber diese Schritte führten zum Verlust der eindeutigen IP-Adresse des Nutzers.
  • Mit der Einführung der NAT und transparenter Proxyserver kann man nicht länger mit Sicherheit annehmen, dass sich eine einzelne IP-Adresse auf nur einen Client bezieht. Tatsächlich ist es ein Ziel der NAT, die wahre lokale IP-Adresse des Wirtsrechners zu verstecken, indem einige konstante IP-Adressen für die wahre IP-Adresse ersetzt werden. Die NAT-Technologie wird allgemein in einem System benutzt, das eine Vielzahl mobiler Clients mit dem Internet verbindet, zum Beispiel dem Wireless Acess Protocol (WAP) Gateway, und erscheint auch in Haushaltsnetzwerk-Systemen, zum Beispiel einem LAN-Router oder einem intelligenten Hub oder in Modems für Haushalte (der ISDN-LAN-Modem von 3Comm ist ein Beispiel für einen kleinen Router für den Haushalt, der die NAT-Funktion enthält). NAT-Einheiten und transparente Proxy-Server werden auch von ISPs verwendet und bieten Dienste der Art ”immer bereit”, zum Beispiel auf der Grundlage der Kabelmodem-Technologie oder der Asymmetric Digital Subscriber Line(ADSL)-Technologie” sowie den traditionellen anwählbaren ”Point of Presence” (POPs).
  • Der SSL-ID (Secure Sockets Layer Identifier) wurde auch als Lösung für das schwierige Verteilungsproblem versucht und war nicht erfolgreich. Verbindungen, die SSL oder TSL benutzen, werden verschlüsselt. Sobald eine SSL-Verbindung zwischen einem gegebenen Client und einem bestimmten Server hergestellt ist, könnte der SSL ID (eine quasi-eindeutige Zahl) von dem Belastungs-Ausgleichssystem geprüft und für die Zwecke der schwierigen Verteilung verwendet werden. Obwohl es der SSL-Standard immer jedem Endpunkt der Verbindung erlaubt, die Schlüsselzustimmung zurückzuweisen und eine Neuverhandlung der SSL-Parameter und nachfolgend die Zuweisung eines neuen SSL-ID zu erzwingen, geschah dies in der Praxis nur bei Servern, was die Vorgehensweise eine Zeit lang lebensfähig machte. Jedoch ist diese Technik mit der unlängst erfolgten Freigabe des Microsoft Internet Explorer 5.0 (geschützte Bezeichnung der Firma Microsoft) nicht länger lebensfähig. Der Internet Explorer 5.0 ist so codiert, dass entweder der Server oder der Client die Schlüsselzustimmung zurückweisen kann, was es für ein Belastungs-Ausgleichssystem unmöglich macht, die frühere SSL-Verbindung mit der jetzigen in Verbindung zu bringen.
  • Die nächste Lösung, die für diese beiden Probleme versucht wurde, verwendete ”Cookies”. Ein Cookie ist ein Datenobjekt, das in Feldern variabler Länge innerhalb des HTTP-Headers transportiert und normalerweise im Client, entweder für die Dauer der Sitzung oder dauerhaft gespeichert wird. Ein Cookie speichert gewisse Daten, an die sich die Serveranwendung für einen bestimmten Client erinnern möchte. Dies könnte die Kennzeichnung des Client, der Sitzungsparameter, der Nutzerpräferenzen, den Stand der Sitzung oder nahezu alles andere einschließen, woran ein Anwendungsschreiber denken kann. Obwohl ein Lastenausgleichssystem mit auf dem Inhalt beruhender Verteilung auch in den HTTP-Header schauen und auf der Grundlage von in den Cookies enthaltenen Daten verteilen könnte, zeigte es sich, dass diese anfänglich verheißungsvolle Lösung auch eine katastrophale Unzulänglichkeit aufweist. Gewisse Kunden können keine Cookies speichern. Unter diesen gewissen Kunden befinden sich Web-Telefon-Kunden, die auf das Internet über ein WAP-Gateway, unter Benutzung des Wireless Session Protocol (WSP), zugreifen. WSP berücksichtigt keine Cookies. Selbst falls WSP Cookies unterstützen würde, können Web-Telefon-Kunden auf Grund ihres außerordentlich begrenzten Speichers keine Cookies speichern. Während es für ein drahtloses Gateway-Produkt möglich ist, Cookies für den drahtlosen Client zu speichern (das IBM eNetwork Wireless Gateway macht das, das Nokia WAP Gateway macht das nicht), können solche Funktionen in dem Gateway nicht vorausgesetzt werden, wie oben nachgewiesen wird. Zusätzlich treffen viele Nutzer die Wahl, Cookies insgesamt zu sperren oder das Nachfragen bei Cookies einzuschalten und Cookies, falls überhaupt, auf Grund zunehmender Vertraulichkeits-Befürchtungen bei der Verwendung von Cookies, dass skrupellose Werber den Surfgewohnheiten eines Internet-Nutzers nachspüren könnten, nur selektiv zu akzeptieren. So kann die Fähigkeit, permanente Sitzungsinformationen in Cookies zu speichern, nicht vorausgesetzt werden.
  • APOSTOLOPOULOS, G. Et al: „Design, Implementation and Performance of a Content-Based Switch”, 26.–30. März 2000, IEEE INFOCOM 2000, Vol. 3, S. 1117–1126, beschreibt einen ”contentbased” Switch, der als Dispatcher für einen Cluster von nicht redundanten Web-Servern eingesetzt wird, wobei der gesamte Datentransfer zwischen dem Client und einem ausgewählten Server über den Switch erfolgt, Dieser Switch wird aber einem Cluster von nicht-redundanten Servern vorgeschaltet.
  • SAMAR, V.: ”Single sign-on using cookies for Web Applications”, 1999, IEEE Infrastructure for Collaborative Enterprises (ICE'99), S. 158–163 beschreibt ein SSO-Verfahren zur Authentisierung von Clients gegenüber Web-Anwendungen, bei dem Cookies, die Client-bezogenen Authentisierungsinformationen entsprechen, als URL-Parameter zwischen einem Web-Server und dem Client übertragen werden. Dieses System umfaßt keinen Server-Cluster mit vorgeschaltetem Dispatcher.
  • V. Cardellini, M. Colajanni, P. S. Yu: ”Dynamic Load Balancing an Web-Server Systems”, IEEE Internet Computing, Vol. 3(3), pp. 28–29, DOI: 10.1109/4236.769420 beschreibt verschiedene Verfahren in verteilten Web-Server-Architekturen zur Verteilung eingehender Requests unter den verschiedenen Web-Servern.
  • Zusammenfassung der Erfindung
  • Die vorliegende Erfindung ermöglicht einzelnen Clients die Dauerhaftigkeit einer schwierigen Sitzung mit einem bestimmten Server, selbst wenn sie identische IP-Adressen besitzen, wie zum Beispiel WAP-Telefone, die auf das Netzwerk über ein NAT-Gateway zugreifen. Sie stellt auch die Fähigkeit von Web-Anwendungen wieder her, auf dem Vorhandensein von Cookies aufzubauen, die sie mit dem Aufkommen von ”cookie-freien” WAP-Anrufen verloren hatten. Die vorliegende Erfindung stellt eine bessere Unterstützung für robuste, große, zuverlässige, hoch-verfügbare Installationen des elektronischen Handels zur Verfügung, die allen Arten von Web-Clients einschließlich Microsoft Internet Explorer 5.0 (geschützte Bezeichnung der Firma Microsoft) dienen und die neueren Web-Telefon-Geräte und die mobilen Geräte, die keine Cookie-Unterstützung besitzen. Die vorliegende Lösung kann als ein auf einer Server-Plattform beruhender Dienst zur Verfügung gestellt werden, ohne irgendwelche Änderungen in vorhandenen Web-Anwendungen zu erfordern.
  • Die vorliegende Erfindung verwendet eine Modifikation der Uniform Resource Locators (URLs) in einem Hypertext Transport Protocol-(HTTP) oder Secure HTTP-(HTTPS)Dokument, so dass der URL einen gegebenen Client eindeutig kennzeichnet und ihn für die Dauer einer Sitzung an einen bestimmten Server bindet. Zusätzlich zur Modifikation des URL wird ein ”serverseitiger Cookie-Behälter” (cookie jar) benutzt, der ein Datenobjekt zur Verfügung stellt, das einem Web-Anwendungs-Server zugänglich ist. Der Cookie-Behälter wird benutzt, um Cookies für einen besonderen Client zu speichern, so dass sie die Clients oder ihre client-seitigen Proxy-Server nicht speichern müssen. Unter Benutzung des modifizierten client-eindeutigen URL zur Kennzeichnung eines bestimmten Servers, eines Client, einer Sitzung und eines Cookie-Behälters in einer ankommenden Web-Anforderung wird die Anforderung zu dem geeigneten Server geleitet. Die vorliegende Erfindung wird in größerer Ausführlichkeit unter Bezugnahme auf eine nachstehende bevorzugte Ausführungsform beschrieben.
  • Aufgaben der Erfindung
  • Es ist eine Aufgabe der vorliegenden Erfindung, Internet-Nutzer, die keine lokalen Cookies speichern wollen oder können oder die sich hinter einer NAT oder einem transparenten Proxy-Server befinden, in den Stand zu versetzen, eine Sitzung mit einem bestimmten Server aus einem Cluster von Servern, dem ein Dispatcher vorgelagert wurde, herzustellen.
  • Es ist eine weitere Aufgabe der vorliegenden Erfindung, den Server in einer Menge von durch einen Dispatcher verwalteten Servern zu befähigen, Informationen bzgl. des Client zu speichern.
  • Es ist eine weitere Aufgabe der vorliegenden Erfindung zu ermöglichen, dass diese Sitzung durch Modifikation der URL und ohne Forderung nach eindeutigen Modifikationen der Clients stattfindet.
  • Es ist noch eine weitere Aufgabe der vorliegenden Erfindung zu ermöglichen, dass eine vollständige Transaktion zwischen einem Client und einem Server aus einer Vielzahl von Servern stattfindet, die von einem Netzwerk-Dispatcher verwaltet werden.
  • Es ist noch eine weitere Aufgabe der vorliegenden Erfindung, eine differenzierte Service-Qualität durch Anwendung der beschriebenen Methodologie zu ermöglichen.
  • Kurze Beschreibung der Zeichnungen
  • 1 ist eine bildliche Darstellung eines minimalen Netzwerkes, in dem die vorliegende Erfindung arbeiten kann.
  • 2 ist ein Diagramm der Änderungen des URL für die vorliegende Erfindung.
  • 3 ist ein Flussdiagramm für die Änderungen des URL in der vorliegenden Erfindung.
  • 4A zeigt den logischen Fluss für den Empfang von Informationen beim Netzwerk-Dispatcher der vorliegenden Erfindung.
  • 4B zeigt den logischen Fluss für den Empfang von Informationen von der Anwendung.
  • 5 zeigt die Verwendung des Network Address Translators (NAT).
  • 6 zeigt, wie ein typischer Netzwerk-Dispatcher die Informationen verteilen würde.
  • Ausführliche Beschreibung der bevorzugten Ausführungsform
  • Die oben erwähnten sowie weitere Ziele werden ausführlich beschrieben unter Bezugnahme auf eine bevorzugte Ausführungsform der vorliegenden Erfindung sowie auf die hier dargestellten Abbildungen. Gleiche Zahlen in den Abbildungen stellen die gleichen Elemente dar. Die bevorzugte Ausführungsform wird als Beispiel dargestellt und soll die dargestellte Erfindung oder die Ansprüche in keiner Weise beschränken.
  • Die bevorzugte Ausführungsform der vorliegenden Erfindung benutzt eine Modifikation des URL in einem HTTP- oder HTTPS-Dokument, so dass das Dokument einen gegebenen Client eindeutig kennzeichnet und den Client für die Dauer einer Sitzung an einen bestimmten Server bindet. Zusammen mit der URL-Modifikation wird ein serverseitiger Cookie-Behälter eingerichtet, der es dem Server ermöglicht, Cookies für einen bestimmten Client zu speichern. Dadurch werden der Client oder clientseitige Proxy-Server von der Aufgabe befreit, Cookies zu speichern. Der Ansatz des Cookie-Behälters löst das Problem der Speicherung eines Cookies zugunsten des Client. Unter Benutzung des modifizierten client-eindeutigen URL für die Kennzeichnung eines bestimmten Servers, eines Clients, einer Sitzung und eines Cookie-Behälters in einer ankommenden Webanforderung wird die Anforderung zu dem geeigneten Server geleitet, wo ein Stromfilter für ankommende Daten den URL in seinen unmodifizierten Zustand zurückversetzt, das entsprechende oder die entsprechenden Cookies aus dem angegebenen Cookie-Behälter abruft und sie in den HTTP-Strom einfügt, bevor die eingegangene Anforderung an die Anwendung weitergegeben wird (oder an das nächste Filter für einen ankommenden Datenstrom in der Kette, falls Filterverkettung benutzt wird). Das Filter für einen ankommenden Datenstrom muss des erste oder einzige Filter sein, das mit dem ankommenden Datenstrom arbeitet, damit die vorliegende Erfindung erfolgreich ihr Ziel erreicht. Ein zugeordnetes Ausgangsfilter, das sich auch auf dem Webanwendungsserver befindet, erhält die von der Anwendung erzeugten abgehenden Daten und Header, schafft alle in den Headern gefundenen Cookies in einen bestimmten Cookie-Behälter, der der Sitzung des Client zugeordnet ist und konvertiert gewisse URLs in der abgehenden Webseite in die modifizierte Form um, die unten ausführlich beschrieben wird. Das Filter für den abgehenden Datenstrom muss das letzte oder einzige Filter sein, das mit dem abgehenden Datenstrom arbeitet.
  • Das Filter für den abgehenden Datenstrom der bevorzugten Ausführungsform fügt eine Zeichenkette, die durch einen Rechtsschrägstrich gekennzeichnet ist, wobei die Zeichenkette vorzugsweise unter Verwendung der modifizierten Base64-Codierung (die Sonderzeichen ”+” und ”/” der Standardcodierung würden entsprechend durch ”–” und ”_” ersetzt) formatiert wird, in den URL zwischen dem Serverteil und dem Pfadteil ein. Die modifizierte Base64-Codierung wird bevorzugt, so dass beliebige binäre Daten in dem eingefügten Teil als eine Reihe von zulässigen druckbaren URL-Pfad-Zeichen dargestellt werden, obwohl beliebige Mittel akzeptierbar sind, die dies erreichen. Ein Beispiel hierfür ist in 2 gezeigt. 2 zeigt den nichtmodifizierten URL 201 sowie den modifizierten URL 203. Die Zeichenkette, nachstehend als ”Token für die schwierige Verteilung” 235 bezeichnet, enthält vier Felder:
    • 1. Ein Verteilungsfeld, das den bestimmten Server 207 kennzeichnet, an den die Client-Sitzung gebunden ist. Vorzugsweise ist dieses Verteilungsfeld die IP-Unternetzadresse des Servers in dem gleichen IP-Unternetz wie das Belastungs-Ausgleichssystem, obwohl auch andere Mittel zur Serverkennzeichnung akzeptierbar sind.
    • 2. Eine Markierung 209 für das Datum und die Zeit. Eine neue Datums-Zeit-Markierung wird von dem Ausgangsfilter in den Ausgangsdatenstrom eingefügt. Sie wird auch vom Belastungs-Ausgleichssystem und vom Eingangsdatenstrom-Filter geprüft, um festzustellen, ob die Bindungsrelation zwischen dem Client und dem Server überaltert ist.
    • 3. Einen ”Schlüssel” 211 oder einen Index, der benutzt werden kann, um den richtigen Cookie-Behälter auszuwählen, in dem die Cookies, die zu der bestimmten Client-Server-Bindung gehören, aufbewahrt werden.
    • 4. Eine Prüfsumme oder einen Hashcode 213 (zum Beispiel einen SHA-1 Secure Hash Algorithm (Sicherer Hashcode-Algorithmus)), der geprüft werden kann, um einen gültigen URL für die schwierige Verteilung von einem nichtmodifizierten URL zu unterscheiden.
  • Das Ausgangsfilter verzeichnet für die Behandlung nur gewisse MIMF-(Multi-Purpose Internet Mail) Arten (Dokumente, die unter Benutzung einer strukturierten Auszeichnungssprache codiert wurden, einschließlich, aber nicht darauf beschränkt, HTML, WML und XML). Er verzeichnet nicht die Behandlung von ”Strommedien”, Bildern, oder MIME-Typen mit vom Internet heruntergeladenem Code.
  • Wir beziehen uns jetzt auf 4A – bevor eine Client-Server-Bindung hergestellt wird, sieht das Belastungs-Ausgleichssystem nur einen unmodifizierten Standard-URL in dem Eingangsdatenstrom. Das Belastungs-Ausgleichssystem benutzt eine Standard-Belastungs-Ausgleichstechnologie außerhalb des Bereiches dieser Erörterung, um diese anfängliche eingehende Anforderung zu dem geeignetsten Server 401 zu leiten.
  • Wenn diese Anforderung beim Anwendungsserver ankommt und keine Bindung vorhanden ist, erzeugt das Filter für den Eingangsdatenstrom der vorliegenden Erfindung ein Token 403 für die schwierige Verteilung zum späteren Einfügen in den Ausgangsdatenstrom, so wie oben beschrieben. Das dritte Feld der Zeichenkette ist ein neuer Schlüssel, der auf ein Speicherobjekt zugreift, in dem Cookies für die Sitzung gespeichert werden können 405. Dieser Schlüssel dient auch dazu, die Eingangs- und die Ausgangsströme, die einer gegebenen Bindung zugeordnet sind, miteinander zu verbinden. In einer bevorzugten Ausführungsform erzeugt das Eingangsfilter ein bestimmtes Cookie, in das es den eben erzeugten Schlüssel einfügt, und platziert dieses Cookie in den Header. Dieses ”Schlüssel-Cookie” wird dazu benutzt, Zustandsinformationen, nämlich den Schlüssel selbst, während der Datenübertragung vom Eingangsfilter zur Anwendung und zurück zum Ausgangsfilter zu speichern. Alternativ hierzu kann das Eingangsfilter den Schlüssel in einem Verbindungssteuerobjekt speichern, das der TCP-Verbindung zugeordnet ist. Obwohl es für die Ausführung der vorliegenden Erfindung nicht von besonderer Wichtigkeit ist, wo der Schlüssel genau gespeichert wird, ist es wichtig, den Schlüssel an einer Stelle zu speichern, wo er später von dem Filter des Ausgangsdatenstromes so abgerufen werden kann, dass die Verbindung zur Sitzung ermöglicht wird.
  • Das Eingangsfilter leitet dann die Daten zum nächsten Filter in der Kette 409, wenn mehrere Eingangsfilter 407 vorhanden sind, oder direkt zur Anwendung 411, wenn es nur ein Eingangsfilter gibt.
  • Wir beziehen uns jetzt auf 4B – nachdem die Anwendung die ankommenden Daten verarbeitet und einen abgehenden strukturierten Strom der Auszeichnungssprache erzeugt hat, erhält das Filter der vorliegenden Erfindung für den Ausgangsdatenstrom die Steuerung 421. An diesem Punkt kann der Header Cookies enthalten, in denen die Anwendung Zustandsinformationen gespeichert hat, die zu dem bestimmten Client gehören. Wenn das Eingangsfilter die in der vorliegenden Erfindung beschriebene ”Schlüssel-Cookie-”Technik 423 benutzt hat, um den Schlüssel zu dem Ausgangsfilter zu transportieren, ist dieses Cookie auch in dem Header vorhanden. Das Ausgangsfilter ruft den Schlüssel für die Sitzung 425 ab, entfernt alle Cookies 427 aus dem Header und speichert sie 429 in dem durch den Schlüssel indizierten Cookiebehälter. Es ist wichtig zu beachten, dass das Ausgangsfilter der vorliegenden Erfindung als Teil eines Transcodierungsprozesses realisiert werden könnte und die Pfadlänge der Filterung des Ausgangsdatenstroms nicht wesentlich erhöhen sollte, wenn die Daten bereits analysiert, formatiert und während einer Transcodierungsoperation auf den Ausgangsdatenpfad kopiert wurden.
  • Als Nächstes modifiziert das Ausgangsfilter null oder mehr URLs innerhalb des strukturierten Auszeichnungssprachen-Dokumentes 431 (structured markup language document). Alle URLs, die sich auf die gleiche Transaktion beziehen, müssen modifiziert werden. In der Praxis werden alle URLs modifiziert, die sich auf den bestimmten Server oder relativ auf diesen Server beziehen. (Alternativ hierzu könnte ein Software-Entwicklungswerkzeug zur Verfügung gestellt werden, das es dem Anwendungsprogrammierer ermöglicht, gewisse URLs als zu der Transaktion gehörig zu markieren; in diesem Falle würden nur diese von dem Ausgangsfilter modifiziert, jedoch wird diese Ausführung weniger vorgezogen, da sie erfordert, dass Anwendungsprogramme modifiziert werden.) Das Ausgangsfilter der vorliegenden Erfindung erzeugt die oben erwähnte Zeichenkette 433 für die schwierige Verteilung und erneuert die Datums-Zeit-Markierung 435. Die Modifikation besteht aus der Einfügung dieser Zeichenkette für die schwierige Verteilung in jede der ausgewählten URLs 437 (dieser Prozess wird manchmal als ”URL-Zurückschreiben” (URL-rewriting) bezeichnet). In der bevorzugten Ausführungsform kann dies durch Aufruf einer vorhandenen URL-Rückschreibefunktion mit neuen Parametern leicht erreicht werden. (Bezüglich zusätzlicher Information zum Stand der Technik beim URL-Zurückschreiben siehe die Dokumentation zum IBM WebSphere Application Server bei http://web/doc/whatis/icesessta.html. Dieses Dokument erläutert den aktuellen Stand der Technik bei der Sitzungszustands-Korrelation, der Cookie-Verwaltung und dem URL-Zurückschreiben.) Schließlich transportiert das Ausgangsfilter der vorliegenden Erfindung den entstehenden Strom zur Netzwerkschicht zur Übertragung zum Client 439.
  • Wenn der Client den modifizierten HTTP-Strom erhält, kann der Nutzer irgendeine modifizierte URL auswählen, was zu einer Eingangsanforderung führt, die ein Token für die schwierige Verteilung enthält. Die vorliegende Erfindung besitzt einen Vorteil gegenüber dem Stand der Technik, der optionale oder variable Eigenschaften des Protokolls ausnutzte, zum Beispiel die IP-Adresse der Quelle, den SSL-ID oder Cookies, da die URL obligatorischer HTTP-Inhalt ist, der nicht entfernt, verändert oder wählbar gemacht werden kann.
  • Wir beziehen uns noch einmal auf 3 – die ankommende Anforderung erreicht das Belastungs-Ausgleichssystem 301. Das Belastungs-Ausgleichssystem prüft die Daten, um festzustellen, ob ein gültiges Token für die schwierige Verteilung vorhanden ist 303. In der bevorzugten Ausführungsform besteht die Prüfung aus dem Vergleich der eingebetteten Prüfsumme oder digitalen Signatur (Hashcode, zum Beispiel ein SHA-1 – Hashcode) mit einer berechneten Prüfsumme oder einer digitalen Signatur. Wenn kein gültiges Token für die schwierige Verteilung vorhanden ist, wird das Paket wie üblich verarbeitet 305. Das Belastungs-Ausgleichssystem testet dann die Datums-Zeit-Kennzeichnung, um festzustellen, ob die Sitzungsbindung überaltert ist. Wenn die Differenz zwischen Datums-Zeit-Markierung und der aktuellen Datums-Zeit-Markierung eine gewisse Konstante überschreitet, wird die Bindung als überaltert angesehen, und die Daten werden verarbeitet, als ob kein Feld für die schwierige Verteilung vorhanden wäre, d. h. vorzugsweise unter Anwendung vorhandener Belastungs-Ausgleichstechniken, um einen Server zur Bearbeitung der Anforderung auszuwählen und danach eine neue Sitzungsbindung und ein entsprechendes Feld für die schwierige Verteilung zu erzeugen. In jedem Fall wird das Verteilungsfeld in dem Token benutzt, um das Paket zu dem gekennzeichneten Server 313 zu leiten. Nach der Ankunft des Paketes beim Anwendungsserver erhält der Filter für den Eingangsdatenstrom die Steuerung.
  • Das Filter für den Eingangsdatenstrom prüft das Token für die schwierige Verteilung und das Datums-Zeit-Token auf die gleiche Art und Weise, wie sie oben erklärt wurde. Wenn das Token für die schwierige Verteilung gültig und nicht überaltert ist, benutzt das Eingangsfilter den Schlüssel, um auf den Cookie-Behälter zuzugreifen, in dem die Cookies für die bestimmte Client-Server-Bindung gespeichert werden. Es entfernt das Verteilungstoken und speichert den Schlüssel entweder in einem Schlüsselcookie oder in dem Steuerblock der TCP-Verbindung, so wie oben beschrieben. Es fügt alle die ausgewählten Cookies in den Header ein und sendet die Daten entweder zu dem nächsten Eingangsfilter, falls vorhanden, oder direkt an die Anwendung.
  • Das Token für die schwierige Verteilung kann auch als Grundlage für das Belastungs-Ausgleichssystem dienen, um eine differenzierte Qualität der Dienstleistung zu bieten. Da man imstande ist, eine bestimmte Client-Sitzung zu erkennen oder eine Transaktion, die gerade bearbeitet wird, von einer zu unterscheiden, die noch nicht begonnen hat, können geeignete Entscheidungen getroffen werden, um gewisse Pakete gegenüber anderen zu priorisieren.
  • Die vorliegende Idee kann auch so erweitert werden, dass eine Ausführung mit hoher Verfügbarkeit bereitgestellt wird, ohne die zugrunde liegende Theorie wesentlich zu ändern. Hierfür ist anstelle eines Cookie-Behälters oder Objektspeichers pro Anwendungsserver ein gemeinsam benutzter Objektspeicher (Object Store) mit geringer Zusatzbelastung vorhanden, der allen Servern im Cluster (und wahlweise dem Belastungs-Ausgleichssystem) zugänglich ist.
  • Anstelle des Speicherns der Cookies in einem Cookie-Behälter werden die Cookies in dem gemeinsam benutzten Objektspeicher gespeichert. Zusätzlich zu den Cookies würde die Anwendung neu geschrieben, um alle ihre relevante Zustandsinformationen bezüglich einer stattfindenden Sitzung in dem Objektspeicher zu speichern. Die Anwendung würde beim Empfang von irgendwelchen ankommenden Daten alle ihre Zustandsinformationen aus dem Objektspeicher herausziehen müssen.
  • Wenn mehrere Instanzen der Anwendung auf verschiedenen Servern in einem Cluster laufen und ein Belastungs-Ausgleichssystem ankommende Anforderungen an verschiedene Server leitet, ist jeder Server imstande, allen anderen Servern einen identischen Dienst zur Verfügung zu stellen. Somit kann im Falle des Zusammenbruches einer Anwendung oder eines Serverausfalls die Transaktion ohne Unterbrechung fortgesetzt werden, wenn die gespeicherte Zustandsinformationen intakt und zugänglich sind.

Claims (15)

  1. Verfahren zur Herstellung einer dauerhaften Beziehung zwischen einem Client-System und einem Server, wobei der Server aus einer Vielzahl von Servern stammt, die von einem Dispatcher verwaltet werden, und das Client-System unter Benutzung eines Universellen Ressourcen-Lokalisierers (URL) auf den Server zugreift, bei dem der Dispatcher eine Informationsanforderung vom Client-System empfängt und bestimmt, welcher aus der Vielzahl von Servern für die Erfüllung der Anforderung auszuwählen ist; dadurch gekennzeichnet, – dass der ausgewählte Server ein Token erzeugt, das wenigstens einen Bezeichner für den ausgewählten Server, eine Datums-Zeit-Markierung und einen Schlüssel umfasst, wobei der Schlüssel für den Zugriff auf einen Speicherbereich für Informationen bezüglich der dauerhaften Beziehung zum Client-System verwendet wird; – dass das Token in den URL eingefügt wird; und – dass der ausgewählte Server eine Antwort mit dem in den URL eingefügten Token zum Client-System sendet, um das Client-System für die Dauer einer Sitzung an diesen Server zu binden.
  2. Verfahren nach Anspruch 1, wobei das Token unter Benutzung einer modifizierten Base64-Codierung codiert wird.
  3. Verfahren nach Anspruch 1, wobei das Token zusätzlich ein Prüfsummen- oder Hashcode-Überprüfungsfeld umfasst.
  4. Verfahren nach Anspruch 3, wobei der Hashcode ein SHA-1-Hashcode ist, der über den Bezeichner für den ausgewählten Server, das Datums-Zeit-Token und den Schlüssel berechnet wird.
  5. Verfahren nach Anspruch 3, wobei die Prüfsumme oder der Hashcode unter Benutzung einer modifizierten Base64-Codierung codiert wird.
  6. Verfahren nach Anspruch 1, wobei die Informationen bezüglich der andauernden Beziehung als ein Cookie auf dem Server gespeichert sind.
  7. Verfahren zum Verteilen einer Anforderung eines Client-Systems zu einem bestimmten Server aus einer Vielzahl von redundanten Servern, die sich hinter einem Dispatcher befinden, bei dem der Dispatcher aufgrund eines Universellen Ressourcen-Lokalisierers (URL) eine Anforderung empfängt; dadurch gekennzeichnet, – dass der Dispatcher feststellt, ob dieser URL ein gültiges Verteilungstoken enthält, wobei das Verteilungstoken wenigstens einen Bezeichner für den bestimmten Server an dem das Client-System für die Dauer einer Sitzung gebunden ist, eine Datums-Zeit-Markierung und einen Schlüssel umfasst, wobei der Schlüssel für den Zugriff auf einen Speicherbereich für Informationen bezüglich einer Sitzung zwischen dem bestimmten Server und dem Client-System verwendet wird; – und, falls dieser URL ein gültiges Verteilungstoken enthält, der Dispatcher feststellt, ob eine Sitzungsbindung, die durch dieses Verteilungstoken angezeigt wird, alt ist; – und falls dieses Verteilungstoken nicht alt ist, der Dispatcher die Anforderung einschließlich des URL an den bestimmten Server sendet, der durch das gültige Verteilungstoken angezeigt wird; – dass der bestimmte Server das gültige Verteilungstoken aus dem URL entfernt; – dass der bestimmte Server den Schlüssel des gültigen Verteilungstokens speichert, so dass ein Filter für den abgehenden Datenstrom während der Verarbeitung einer abgehenden, mit dieser Anforderung zusammenhängenden Antwort nachfolgend auf die entsprechenden Sitzungsinformationen zugreifen kann; – dass der bestimmte Server auf diese Sitzungsinformationen zugreift und sie in die Anforderung einfügt.
  8. Verfahren nach Anspruch 7, wobei ein zusätzliches Filtern des URL vor dem Schritt des Weiterleitens erfolgt.
  9. Verfahren nach Anspruch 1 bis 8, wobei alle Filterschritte innerhalb des Dispatchers ausgeführt werden.
  10. Verfahren zum Senden von Informationen über eine Sitzung von einer Anwendung an ein anforderndes Client-System, wobei sich diese Anwendung auf einem Server aus einer Vielzahl von redundanten Servern befindet, die sich hinter einem Dispatcher befinden, wobei dieses Verfahren die folgenden Schritte umfasst: Empfang der Antwortinformationen von der Anwendung, wobei die Antwortinformationen einen URL (Universellen Ressourcen-Lokalisierers) enthalten; Feststellen, ob im URL ein Schlüsselcookie für die Speicherung der Sitzungsinformationen zwischen dem Client-System und der Anwendung benutzt wurde; Abrufen eines Sitzungsschlüssels aus dem Schlüsselcookie, falls ein Schlüsselcookie für die Speicherung der Sitzungsinformationen verwendet wurde; Abrufen des Sitzungsschlüssels aus einem Steuerblock der TCP-Verbindung, falls kein Schlüsselcookie benutzt wurde; Entfernen aller Cookies aus den Antwortinformationen; Speichern der entfernten Cookies in einem vorher festgelegten Speicherbereich; Aktualisieren des URL, um das Entfernen dieser Cookies anzuzeigen; Erzeugen einer Zeichenkette für das schwierige Verteilen, die wenigstens einen Bezeichner für den ausgewählten Server, eine Datums-Zeit-Markierung und einen Sitzungsschlüssel umfasst, wobei der Sitzungsschlüssel für den Zugriff auf den Cookie im festgelegten Speicherbereich verwendet werden kann; Aktualisieren eines Datums-Zeit-Tokens in dieser Zeichenkette für das schwierige Verteilen; Einfügen der Zeichenkette für das schwierige Verteilen in den URL; und Übertragen der Antwortinformationen einschließlich des URL zu dem Client-System.
  11. Verfahren nach Anspruch 10, wobei die Antwortinformationen vor dem Feststellungsschritt von der Anwendung durch ein oder mehrere Filter übertragen werden.
  12. Computerprogrammprodukt zur Realisierung eines Verfahrens zur Herstellung einer dauerhaften Beziehung zwischen einem Client-System und einem Server, nach einem der Ansprüche 1 bis 6.
  13. Computerprogrammprodukt zur Realisierung eines Verfahrens zum Verteilen einer Anforderung eines Client-Systems zu einem bestimmten Server aus einer Vielzahl von redundanten Servern, nach einem der Ansprüche 7 bis 9.
  14. Computerprogrammprodukt zur Realisierung eines Verfahrens zum Senden von Informationen über eine Sitzung von einer Anwendung an das anfordernde Client-System, nach einem der Ansprüche 10 oder 11.
  15. Netzwerk-Dispatcher zur Durchführung eines Verfahrens nach einem der Ansprüche 1 bis 6.
DE10116640A 2000-04-25 2001-04-04 Auf URL beruhende Token für schwierige Verteilungen, die einen serverseitigen Cookiebehälter benutzen Expired - Lifetime DE10116640B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US557708 2000-04-25
US09/557,708 US8239445B1 (en) 2000-04-25 2000-04-25 URL-based sticky routing tokens using a server-side cookie jar

Publications (2)

Publication Number Publication Date
DE10116640A1 DE10116640A1 (de) 2001-12-20
DE10116640B4 true DE10116640B4 (de) 2012-09-13

Family

ID=24226563

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10116640A Expired - Lifetime DE10116640B4 (de) 2000-04-25 2001-04-04 Auf URL beruhende Token für schwierige Verteilungen, die einen serverseitigen Cookiebehälter benutzen

Country Status (3)

Country Link
US (2) US8239445B1 (de)
KR (1) KR100404294B1 (de)
DE (1) DE10116640B4 (de)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8239445B1 (en) * 2000-04-25 2012-08-07 International Business Machines Corporation URL-based sticky routing tokens using a server-side cookie jar
WO2002045316A2 (en) * 2000-11-10 2002-06-06 Full Audio Corporation Digital content distribution and subscription system
EP1466261B1 (de) 2002-01-08 2018-03-07 Seven Networks, LLC Verbindungsarchitektur für ein mobilnetzwerk
US9525566B2 (en) * 2003-07-31 2016-12-20 Cloudsoft Corporation Limited Self-managed mediated information flow
DE102004003593B4 (de) * 2004-01-15 2016-05-12 Deutsche Telekom Ag Verfahren zur Übermittlung von benutzerspezifischen Daten auf der Basis des WAP- oder HTML-Protokolls
KR100678934B1 (ko) * 2004-06-09 2007-02-07 삼성전자주식회사 세션키를 재사용하는 클라이언트와 서버간 보안 통신 방법및 장치
US11868421B1 (en) * 2004-07-23 2024-01-09 Ellis Robinson Giles System and method for evaluating hyperdocuments using a trained artificial neural network
US8312507B2 (en) 2006-10-17 2012-11-13 A10 Networks, Inc. System and method to apply network traffic policy to an application session
US8584199B1 (en) 2006-10-17 2013-11-12 A10 Networks, Inc. System and method to apply a packet routing policy to an application session
KR100944724B1 (ko) 2007-08-21 2010-03-03 엔에이치엔비즈니스플랫폼 주식회사 Ip 주소를 이용한 사용자 인증 시스템 및 그 방법
US8250080B1 (en) * 2008-01-11 2012-08-21 Google Inc. Filtering in search engines
US9268779B2 (en) * 2009-01-28 2016-02-23 Mckesson Financial Holdings Methods, computer program products, and apparatuses for dispersing content items
US9253536B2 (en) * 2009-03-18 2016-02-02 Microsoft Technology Licensing, Llc Updating data-consuming entities
US20120124372A1 (en) * 2010-10-13 2012-05-17 Akamai Technologies, Inc. Protecting Websites and Website Users By Obscuring URLs
US8495195B1 (en) * 2010-11-04 2013-07-23 Sprint Communications Company L.P. Cookie preservation when switching devices
US9697050B2 (en) * 2010-12-22 2017-07-04 Sap Se System and method for scaling for a large number of concurrent users
GB2488790A (en) * 2011-03-07 2012-09-12 Celebrus Technologies Ltd A method of controlling web page behaviour on a web enabled device
US8392526B2 (en) 2011-03-23 2013-03-05 Color Labs, Inc. Sharing content among multiple devices
US10834167B1 (en) * 2011-06-02 2020-11-10 Amazon Technologies, Inc. Client side navigation compositor
JP5729209B2 (ja) * 2011-08-12 2015-06-03 富士通株式会社 情報処理装置、情報処理システムのテスト方法およびプログラム
US8621019B2 (en) 2011-09-21 2013-12-31 Color Labs, Inc. Live content sharing within a social networking environment
US9462302B2 (en) * 2012-02-23 2016-10-04 Mobitv, Inc. Efficient delineation and distribution of media segments
US9118618B2 (en) 2012-03-29 2015-08-25 A10 Networks, Inc. Hardware-based packet editor
US9699272B2 (en) * 2012-09-29 2017-07-04 Oracle International Corporation Mechanism for initiating behavior in a native client application from a web client application via a custom URL scheme
US9338225B2 (en) 2012-12-06 2016-05-10 A10 Networks, Inc. Forwarding policies on a virtual service network
WO2014144837A1 (en) 2013-03-15 2014-09-18 A10 Networks, Inc. Processing data packets using a policy based network path
WO2014179753A2 (en) 2013-05-03 2014-11-06 A10 Networks, Inc. Facilitating secure network traffic by an application delivery controller
US8751661B1 (en) * 2013-11-20 2014-06-10 Linkedin Corporation Sticky routing
CN105900350B (zh) * 2014-03-17 2019-02-26 华为技术有限公司 外环功率控制方法、装置和设备
US9942152B2 (en) 2014-03-25 2018-04-10 A10 Networks, Inc. Forwarding data packets using a service-based forwarding policy
US10268467B2 (en) 2014-11-11 2019-04-23 A10 Networks, Inc. Policy-driven management of application traffic for providing services to cloud-based applications
US9967366B2 (en) * 2015-07-20 2018-05-08 Verizon Patent And Licensing Inc. Internet of things (IoT) API platform
US10135790B2 (en) * 2015-08-25 2018-11-20 Anchorfree Inc. Secure communications with internet-enabled devices
US10523635B2 (en) * 2016-06-17 2019-12-31 Assured Information Security, Inc. Filtering outbound network traffic
US10284674B2 (en) * 2017-01-23 2019-05-07 Verizon Digital Media Services Inc. Cache key based request routing
US10230683B1 (en) * 2018-02-09 2019-03-12 Capital One Services, Llc Routing for large server deployments
US11042853B2 (en) * 2018-11-29 2021-06-22 Visa International Service Association System and method for provisioning a gift with a uniform resource locator
ES2877338T3 (es) 2018-12-13 2021-11-16 Telefonica Sa Procedimiento, sistema y dispositivos para mejorar la entrega de contenidos multimedia
CN110912933B (zh) * 2019-12-17 2021-04-02 中国科学院信息工程研究所 一种基于被动测量的设备识别方法
US11601518B1 (en) * 2022-02-09 2023-03-07 Coretech LT, UAB Managed exit nodes and third party proxies

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5944794A (en) * 1994-09-30 1999-08-31 Kabushiki Kaisha Toshiba User identification data management scheme for networking computer systems using wide area network
US5835724A (en) * 1996-07-03 1998-11-10 Electronic Data Systems Corporation System and method for communication information using the internet that receives and maintains information concerning the client and generates and conveys the session data to the client
US6381632B1 (en) * 1996-09-10 2002-04-30 Youpowered, Inc. Method and apparatus for tracking network usage
US5907621A (en) * 1996-11-15 1999-05-25 International Business Machines Corporation System and method for session management
US6023698A (en) * 1996-12-05 2000-02-08 International Business Machines Corporation System and method for transparently registering and updating information over the internet
US5875296A (en) * 1997-01-28 1999-02-23 International Business Machines Corporation Distributed file system web server user authentication with cookies
US6041357A (en) * 1997-02-06 2000-03-21 Electric Classified, Inc. Common session token system and protocol
US6470389B1 (en) * 1997-03-14 2002-10-22 Lucent Technologies Inc. Hosting a network service on a cluster of servers using a single-address image
GB9709136D0 (en) * 1997-05-02 1997-06-25 Certicom Corp A log-on verification protocol
US6088728A (en) * 1997-06-11 2000-07-11 Oracle Corporation System using session data stored in session data storage for associating and disassociating user identifiers for switching client sessions in a server
GB9715256D0 (en) * 1997-07-21 1997-09-24 Rank Xerox Ltd Token-based docement transactions
US6393475B1 (en) * 1997-07-28 2002-05-21 Nortel Networks Limited Method of performing a network management transaction using a web-capable agent
US6006264A (en) * 1997-08-01 1999-12-21 Arrowpoint Communications, Inc. Method and system for directing a flow between a client and a server
US6714979B1 (en) * 1997-09-26 2004-03-30 Worldcom, Inc. Data warehousing infrastructure for web based reporting tool
US6377993B1 (en) * 1997-09-26 2002-04-23 Mci Worldcom, Inc. Integrated proxy interface for web based data management reports
US7058600B1 (en) * 1997-09-26 2006-06-06 Mci, Inc. Integrated proxy interface for web based data management reports
US7225249B1 (en) * 1997-09-26 2007-05-29 Mci, Llc Integrated systems for providing communications network management services and interactive generating invoice documents
US6745229B1 (en) * 1997-09-26 2004-06-01 Worldcom, Inc. Web based integrated customer interface for invoice reporting
JP3569122B2 (ja) * 1998-01-22 2004-09-22 富士通株式会社 セッション管理システム、サービス提供サーバ、セッション管理サーバ、セッション管理方法及び記録媒体
US6185598B1 (en) * 1998-02-10 2001-02-06 Digital Island, Inc. Optimized network resource location
US6076108A (en) * 1998-03-06 2000-06-13 I2 Technologies, Inc. System and method for maintaining a state for a user session using a web system having a global session server
US6006269A (en) * 1998-03-11 1999-12-21 Hewlett-Packard Company Admission control system with messages admitted or deferred for re-submission at a later time on a priority basis
US6098093A (en) * 1998-03-19 2000-08-01 International Business Machines Corp. Maintaining sessions in a clustered server environment
SE512672C2 (sv) * 1998-06-12 2000-04-17 Ericsson Telefon Ab L M Förfarande och system för överföring av en cookie
JP4522583B2 (ja) * 1998-07-08 2010-08-11 ブリティッシュ・テレコミュニケーションズ・パブリック・リミテッド・カンパニー 要求整合サーバ、要求整合システム及びそれらを使用した電子購買装置、電子取引システム及び方法
US6223287B1 (en) * 1998-07-24 2001-04-24 International Business Machines Corporation Method for establishing a secured communication channel over the internet
GB2342195A (en) * 1998-09-30 2000-04-05 Xerox Corp Secure token-based document server
KR100268838B1 (ko) * 1998-11-07 2000-10-16 김상돈 부하 분산기 및 그 부하 분산기에 의한 내용기반 정책라우팅 방법
US6763370B1 (en) * 1998-11-16 2004-07-13 Softricity, Inc. Method and apparatus for content protection in a secure content delivery system
US6374359B1 (en) * 1998-11-19 2002-04-16 International Business Machines Corporation Dynamic use and validation of HTTP cookies for authentication
US6591272B1 (en) * 1999-02-25 2003-07-08 Tricoron Networks, Inc. Method and apparatus to make and transmit objects from a database on a server computer to a client computer
US6226752B1 (en) * 1999-05-11 2001-05-01 Sun Microsystems, Inc. Method and apparatus for authenticating users
US6829356B1 (en) * 1999-06-29 2004-12-07 Verisign, Inc. Server-assisted regeneration of a strong secret from a weak secret
US7188181B1 (en) * 1999-06-30 2007-03-06 Sun Microsystems, Inc. Universal session sharing
US6374300B2 (en) * 1999-07-15 2002-04-16 F5 Networks, Inc. Method and system for storing load balancing information with an HTTP cookie
US6567857B1 (en) 1999-07-29 2003-05-20 Sun Microsystems, Inc. Method and apparatus for dynamic proxy insertion in network traffic flow
US6892307B1 (en) * 1999-08-05 2005-05-10 Sun Microsystems, Inc. Single sign-on framework with trust-level mapping to authentication requirements
US6339423B1 (en) * 1999-08-23 2002-01-15 Entrust, Inc. Multi-domain access control
US6760758B1 (en) * 1999-08-31 2004-07-06 Qwest Communications International, Inc. System and method for coordinating network access
US6772333B1 (en) * 1999-09-01 2004-08-03 Dickens Coal Llc Atomic session-start operation combining clear-text and encrypted sessions to provide id visibility to middleware such as load-balancers
US6711618B1 (en) * 1999-09-03 2004-03-23 Cisco Technology, Inc. Apparatus and method for providing server state and attribute management for voice enabled web applications
US6701367B1 (en) * 1999-09-24 2004-03-02 Sun Microsystems, Inc. Mechanism for enabling customized session managers to interact with a network server
US6742126B1 (en) * 1999-10-07 2004-05-25 Cisco Technology, Inc. Method and apparatus for identifying a data communications session
US6510464B1 (en) * 1999-12-14 2003-01-21 Verizon Corporate Services Group Inc. Secure gateway having routing feature
US6564215B1 (en) * 1999-12-16 2003-05-13 International Business Machines Corporation Update support in database content management
US6877095B1 (en) * 2000-03-09 2005-04-05 Microsoft Corporation Session-state manager
US6336137B1 (en) * 2000-03-31 2002-01-01 Siebel Systems, Inc. Web client-server system and method for incompatible page markup and presentation languages
US8239445B1 (en) * 2000-04-25 2012-08-07 International Business Machines Corporation URL-based sticky routing tokens using a server-side cookie jar

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
G. APOSTOLOPOULOS (u.a.): Design, Implementation and Performance of a Content-Based Switch, 26.-30. März 2000, IEEE INFOCOM 2000, Vol. 3, S. 1117-1126, ISBN: 0-7803-5880-5, DOI: 10.1109/INFCOM.2000.832470 *
V. CARDELLINI, M. COLAJANNI, P.S. YU: Dynamic Load Balancing on Web-Server Systems, 1999, IEEE Internet Computing, Vol. 3(3) pp. 28-29, DOI: 10.1109/4236.769420 *
V. SAMAR: Single sign-on using cookies for Web applications, 1999, IEEE Infrastructure for Collaborative Enterprises (ICE'99), ISBN: 0-7695-0365-9, S. 158-163, DOI: 10.1109/ENABL.1999.805192 *

Also Published As

Publication number Publication date
US8543644B2 (en) 2013-09-24
KR100404294B1 (ko) 2003-11-03
US8239445B1 (en) 2012-08-07
US20130007225A1 (en) 2013-01-03
DE10116640A1 (de) 2001-12-20
KR20010098423A (ko) 2001-11-08

Similar Documents

Publication Publication Date Title
DE10116640B4 (de) Auf URL beruhende Token für schwierige Verteilungen, die einen serverseitigen Cookiebehälter benutzen
DE69921455T2 (de) System und verfahren zur zugriffssteuerung auf gespeicherte dokumente
US6128645A (en) Hyper and client domain servers
DE69909839T3 (de) Optimierte Lokalisierung von Netzwerkbetriebsmittel
DE60133241T2 (de) Mehranwendung-sicherheitsrelais
DE60208659T2 (de) Skalierbare ressourcenermittlung und rekonfiguration für verteilte rechnernetze
DE69915333T3 (de) Globales dokumentenhostsystem das weit entfaltete inhalts-verteilungsserver verwendet
DE60116903T2 (de) Gesicherte sitzungverwaltung und authentifizierung für websites
DE69933902T2 (de) System zur Bereitstellung verbesserten Sicherheit für Transaktionen die über ein verteiltes Netzwerk übertragen werden
DE60216918T2 (de) Verfahren und computersystem zur auswahl eines randservercomputers
DE60220718T2 (de) Verfahren und system zur sicheren behandlung von elektronischen geschäften im internet
DE60211524T2 (de) Verfahren und vorrichtung zur verteilten lieferung von inhalten innerhalb eines computernetzwerkes
DE60311684T2 (de) Kundenzugang zum internetdienst
DE69731965T2 (de) Zugriff auf rechnerbetriebsmittel von aussen durch eine firewall
CN104767834B (zh) 用于加速计算环境到远程用户的传送的系统和方法
DE69830726T2 (de) Verfahren zum betrieb eines systems von authentifizierungsservern sowie ein solches system
KR100528653B1 (ko) 공용 및 사설 데이터를 통합하기 위한 시스템 및 방법
DE69933852T2 (de) Hausnetz- autokonfigurierung
DE60308692T2 (de) Verfahren und system für benutzerbestimmte authentifizierung und einmalige anmeldung in einer föderalisierten umgebung
EP1178409A1 (de) Cookiemanager zur Kontrolle des Cookietransfers in Internet-Client-Server Computersystem
DE10051571A1 (de) Selektive Datenverschlüsselung unter Verwendung von Stylesheet-Verarbeitung
DE60307652T2 (de) Verfahren und System zur gesicherten Inhaltsüberlieferung
DE60316466T2 (de) Unterstüzung von mehreren nativen netzwerkprotokollimplementiurungen in einem einzigen system
DE10296648T5 (de) Methode für die Integration der elektronischen Post und der Web-Kommunikationen mit einem Benutzer
DE60307275T2 (de) Verfahren zum bereitstellen von informationen für einen web-server

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8120 Willingness to grant licences paragraph 23
8128 New person/name/address of the agent

Representative=s name: DUSCHER, R., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 7

R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final

Effective date: 20121214

R081 Change of applicant/patentee

Owner name: A10 NETWORKS INC., SAN JOSE, US

Free format text: FORMER OWNER: INTERNATIONAL BUSINESS MACHINES CORPORATION, ARMONK, N.Y., US

Owner name: A10 NETWORKS INC., SAN JOSE, US

Free format text: FORMER OWNER: INTERNATIONAL BUSINESS MACHINES CORPORATION, ARMONK, NY, US

R082 Change of representative

Representative=s name: KAHLER, KAECK & MOLLEKOPF, DE

Representative=s name: KAHLER KAECK MOLLEKOPF PARTNERSCHAFT VON PATEN, DE

R071 Expiry of right