DE112018003482T5 - Serveranfrageverwaltung - Google Patents

Serveranfrageverwaltung Download PDF

Info

Publication number
DE112018003482T5
DE112018003482T5 DE112018003482.8T DE112018003482T DE112018003482T5 DE 112018003482 T5 DE112018003482 T5 DE 112018003482T5 DE 112018003482 T DE112018003482 T DE 112018003482T DE 112018003482 T5 DE112018003482 T5 DE 112018003482T5
Authority
DE
Germany
Prior art keywords
server
client
request
requests
response time
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.)
Granted
Application number
DE112018003482.8T
Other languages
English (en)
Other versions
DE112018003482B4 (de
Inventor
Alan Hollingshead
Michael Brooks
Julian Horn
Philip Ivor Wakelin
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112018003482T5 publication Critical patent/DE112018003482T5/de
Application granted granted Critical
Publication of DE112018003482B4 publication Critical patent/DE112018003482B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/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/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • 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/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Ein Transaktionsverarbeitungsserver und zugehörige Clients, die Anfragen an den Server über Client-Verbindungen senden. Der Server weist einen Transaktionsverarbeitungsbereich auf, der in der Lage ist, Anfragen zu verarbeiten und Antworten an den anfordernden Client auszugeben. Der Server führt eine Aufzeichnung der Langzeitverarbeitungszeiten, die für das Verarbeiten der letzten Client-Anfragen benötigt wurden. Der Server verfügt über eine Verbindungsverwaltungseinheit, die in der Lage ist, eingehende Client-Anfragen zu überwachen und aus diesen eine Ziel-Reaktionszeit zu extrahieren, bei der es sich um eine maximale Zeit handelt, innerhalb derer der Client die Verarbeitung der Anfrage erwartet, die in jeder Anfrage enthalten ist. Der Server nimmt jede eingehende Client-Anfrage an oder lehnt sie ab, beruhend darauf, ob es wahrscheinlich ist, dass sie innerhalb der Ziel-Reaktionszeit verarbeitet wird. Wenn eine Anfrage abgelehnt wird, übermittelt der Server eine Ablehnungsnachricht an den Client, von dem sie ausging.

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Offenbarung bezieht sich auf Verfahren und Vorrichtungen zum Verwalten von Client-Verbindungen mit einem Server, um hohe Auslastungen zu verwalten.
  • HINTERGRUND
  • Ein Transaktionsverarbeitungsbereich eines Servers wie zum Beispiel ein Customer Information Control System (CICS®) Transaction Server (TS) für IBM® z/OS® kann über mehrere Netzwerkverbindungen Aufgaben von seinen Clients empfangen. Diese Verbindungen können entweder eine kurze Lebensdauer oder eine lange Lebensdauer aufweisen. Verbindungen von einem Web-Browser haben in der Regel zum Beispiel eine lange Lebensdauer und können eine möglicherweise beträchtliche Anzahl von mehreren gleichzeitigen Anfragen unterstützen. Die Anfragen von Verbindungen mit langer Lebensdauer erfordern daher eine Verwaltung, um einen effizienten Betrieb sicherzustellen, was Gegenstand der vorliegenden Offenbarung ist. Anfrage- und Antwortnachrichten werden über die Verbindung serialisiert und liegen üblicherweise in Paketform mit einem Kopfzeilenteil und einem Nutzdatenteil vor. Eine Nachricht enthält Anfragedaten, die der Client an den Server weiterleitet (oder umgekehrt), welche die Nutzdaten bzw. den Hauptteil der Nachricht bilden. Die Nachricht enthält auch Metadaten, die eine oder mehrere Kopfzeilen der Nachricht bilden, wobei die Rolle der Metadaten darin besteht, dem Empfänger der Nachricht Anweisungen bezüglich des Umgangs mit den Anfragedaten bereitzustellen. Verbindungen können hergestellt werden, wenn die Serverkomponente startet, und können hinzugefügt oder entfernt werden, während die Serverkomponente aktiv bleibt. Die Serverkomponente hat eine endliche Kapazität, begrenzt durch Faktoren wie zum Beispiel den Nutzungsumfang der Zentraleinheit (CPU) der Maschine, auf der sie läuft, und die Menge an Hauptspeicher, auf die sie Zugriff hat. Der Systemadministrator konfiguriert Serverkomponenten, um die Menge an Aufgaben zu maximieren, die sie unterstützen können, ohne das Risiko eines Stillstands aufgrund von Ressourcenmangel einzugehen, und trifft Maßnahmen, um zu verhindern, dass Serverkomponenten aufgrund einer hohen Auslastung vollständig ausfallen. In diesem Zusammenhang ist ein Stillstand ein Zustand, der in dem Server eintritt, wenn Ressourcenkonflikte die Verarbeitung von Anwendungsaufgaben beeinträchtigen. Für die maximale Anzahl an Aufgaben, welche die Serverkomponente gleichzeitig ausführen kann, wird eine Grenze gesetzt. Üblicherweise ist diese größer als die Anzahl, die über eine einzelne Verbindung zu der Serverkomponente unterstützt wird, aber kleiner als diejenige für alle Verbindungen zusammen, da es Zeiten geben wird, in denen eine Verbindung stark ausgelastet ist, während andere nur leicht beansprucht werden.
  • Manchmal kann es vorkommen, dass eine Serverkomponente stark ausgelastet wird, d.h. ihre volle Kapazität erreicht, wenn zu viele Aufgaben über einen Satz von Verbindungen eintreffen. Da die übermäßigen Aufgabenanfragen, die bei bereits voller Kapazität der Serverkomponente empfangen werden, nicht sofort verarbeitet werden können, werden sie in eine Warteschlange in der Serverkomponente eingereiht, wo sie auf einen Zeitpunkt warten, an dem sie verarbeitet werden können. Die Warteschlange selbst und deren Verwaltung verbrauchen jedoch weitere Systemressourcen in der bereits überlasteten Serverkomponente. Es gibt derzeit keinen Mechanismus, um diese Netzwerkprobleme automatisch zu beheben, wenn eine Serverkomponente feststellt, dass sie ihre aktuelle Arbeitslast nicht bewältigen kann.
  • Es sind Steuerungen bekannt, die verhindern, dass ein Netzwerkknoten einen Partner-Netzwerkknoten mit Anfragen überflutet, wenn der Partner nicht in der Lage ist, seine aktuelle Arbeitslast zu verarbeiten. Zum Beispiel ist es bekannt, den Absender der Anfrage (in diesem Dokument als Client bezeichnet) so zu konfigurieren, dass er nur eine feste Anzahl von Anfrageplätzen aufweist. Zum Beispiel kann ein Parameter, der eine „Anzahl von gesendeten Sitzungen“ konfiguriert, dazu verwendet werden, eine maximale Anzahl von gleichzeitigen Anfragen festzulegen, die ein Client über eine Verbindung leiten kann. Die Anzahl wird festgelegt, wenn die Verbindung erstmalig hergestellt wird, und bleibt für die Lebensdauer der Verbindung bestehen. Ein weiteres bekanntes Beispiel ist, dass der Dienstleister (in diesem Dokument als Server bezeichnet) eine Warteschlange für empfangene, aber noch nicht verarbeitete Anfragen pflegt, und wenn die Warteschlange voll ist, veranlasst der Server, dass alle weiteren Anfragen, die er empfängt, abgelehnt werden. Diese Ansätze funktionieren gut für gepaarte Systeme, die nur eine einzige Verbindung untereinander haben, da ihre Gesamtkapazität im Voraus berechnet und somit die Kapazität der Verbindung passend eingestellt werden kann. Allerdings haben große Systeme oft mehrere Eintrittspunkte, so dass es keine einfache Aufgabe ist, ihre Verbindungen in einer Weise zu konfigurieren, die für eine effiziente Verwaltung dieser Anfragen sorgt.
  • Zum Beispiel wird ein IBM CICS® TS für eine z/OS-Produktionsserverkomponente wahrscheinlich mehrere Verbindungen aufweisen, über die Nachrichten mit Anfragen eintreffen können. Die Verkehrsrate von Anfragen über eine beliebige einzelne Verbindung wird wahrscheinlich im Laufe der Zeit erheblich schwanken. Außerdem wird die Verkehrsrate von Anfragen zwischen verschiedenen Verbindungen im Laufe der Zeit wahrscheinlich auch erheblich schwanken. Es ist nicht zweckmäßig, einen Server so zu konfigurieren, dass er der maximalen Kapazität all seiner Clients angeglichen ist, da dies zu großen Mengen an Redundanz sowie zu einer Verschwendung von Ressourcen führen würde, die nicht genutzt werden, wenn die Nachfrage nicht nahe an der Spitze liegt. Stattdessen wird jede Verbindung so konfiguriert, dass sie mehr als ihren gerechten Anteil an der Gesamtkapazität des Servers unterstützt, so dass in Zeiten, in denen der Server weniger ausgelastet ist, ein ausgelasteter Client eine höhere Rate von Anfragen an den Server leiten kann. Folglich kann es längere Zeiträume geben, in denen Anfragen in eine Warteschlange eingereiht werden, bevor sie von dem Server bedient werden können, oder in denen Anfragen von dem Server abgelehnt werden.
  • Um dieses Problem anzugehen, ist es bekannt, dass Clients eine zusätzliche Software verwenden, um festzustellen, ob sie eine bestimmte Verbindung mit voller Kapazität nutzen: IBM z/OS Work Load Manager (WLM) und IBM Tivoli® Netview® sind Beispiele für eine derartige Arbeitslastausgleichssoftware. Bei Arbeitslastausgleich handelt es sich um eine Technik zum Verteilen von auf TCP/IP beruhenden Arbeitslastanfragen (Verbindungen) über ähnliche Server-Anwendungen hinweg, um eine optimale Ressourcennutzung zu erreichen, den Durchsatz zu maximieren, Reaktionszeiten zu minimieren und eine Überlastung von Server-Anwendungen oder -Systemen zu vermeiden. Durch Verwenden von mehreren Server-Anwendungen (anstelle einer einzelnen Server-Anwendung) mit Lastausgleich kann man die Zuverlässigkeit durch Redundanz erhöhen. Der Lastausgleichsdienst wird normalerweise durch ein speziell dafür vorgesehenes Softwareprogramm oder eine speziell dafür vorgesehene Hardwareeinheit bereitgestellt. Eine Arbeitslast-Verwaltungseinheit stellt dem Lastausgleichsdienst (d.h. einer Lastausgleich-Appliance) Verteilungsempfehlungen bereit.
  • In Arbeitslast-Verwaltungsumgebungen dieses Typs sind Server-Anwendungen, die auf dieselben Datenquellen zugreifen, üblicherweise in derselben Arbeitslast beinhaltet. Dies ermöglicht es Überwachungsagenten, zu überprüfen, ob alle diese Anwendungen verfügbar und in der Lage sind, zusätzliche Verbindungen für die Arbeitslast zu bearbeiten. Es ermöglicht einer Arbeitslast-Verwaltungseinheit auch, eine konsolidierte Ansicht der Anwendungen in der Arbeitslast zu erhalten, wodurch ein einfaches Umschalten der Arbeitslasten zwischen geografisch getrennten Standorten (d. h. verschiedenen System-Clustern) ermöglicht wird. Insbesondere kann die Arbeitslast-Verwaltungseinheit einer Lastausgleich-Appliance signalisieren, dass alle Verbindungen zu den Server-Anwendungen, welche die Arbeitslast bilden, gleichzeitig auf den alternativen Standort umgeschaltet werden sollen. Damit ist sichergestellt, dass der Zugriff der Anwendungen auf die Datenquellen zu jedem Zeitpunkt nur von einem Standort aus erfolgt. Die Arbeitslastausgleichsoftware läuft neben den Systemen, welche die Verbindung nutzen. Es besteht jedoch der Nachteil, dass eine derartige zusätzliche Software getrennt von der Verbindung, die sie überwacht, konfiguriert werden muss.
  • Ein anderer bekannter Ansatz, um mit einer hohen Serverauslastung umzugehen, besteht darin, dass der Server den Clients Daten über den Auslastungszustand des Servers sendet, die wir als Gesundheitsdaten bezeichnen. Mit Hilfe der Server-Auslastungszustandsdaten kann der Client entscheiden, ob er Anfragen an den Server senden oder das Senden dieser verzögern soll, wenn der Server bereits ausgelastet ist.
  • KURZDARSTELLUNG DER ERFINDUNG
  • In der vorliegenden Offenbarung schlagen wir einen Bewältigungsmechanismus zum automatischen Verwalten von dauerhaft hohen Auslastungen in dem Transaktionsverarbeitungsbereich eines Servers vor, die sich daraus ergeben, dass der Server zahlreiche Anfragen in einem bestimmten Zeitraum empfängt, unabhängig davon, ob es sich um eine Verbindung oder um mehrere gleichzeitige Verbindungen handelt, wobei der Bewältigungsmechanismus unabhängig von jeglichen Arbeitslast-Ausgleichsmaßnahmen arbeitet, die möglicherweise parallel bereitgestellt sein können.
  • Gemäß einem Aspekt der Offenbarung wird ein Transaktionsverarbeitungsserver bereitgestellt, der in der Lage ist, Client-Verbindungen zu verwalten, wobei der Server Folgendes aufweist: einen Client-Server-Anschluss, der in der Lage ist, einzelne Client-Server-Verbindungen zu dem Server herzustellen, aufrechtzuerhalten und zu beenden, wobei jede Verbindung in der Lage ist, Client-Anfragen an den Server zu übermitteln; einen Transaktionsverarbeitungsbereich des Servers, der in der Lage ist, Client-Anfragen zu verarbeiten und Antworten auszugeben; eine Server-Leistungsverwaltungseinheit, die in der Lage ist, einen Leistungsnachweis darüber zu führen, wie schnell Client-Anfragen bearbeitet werden; und eine Verbindungsverwaltungseinheit, die in der Lage ist, eingehende Client-Anfragen zu überwachen und aus diesen eine Ziel-Reaktionszeit zu extrahieren, die den Transaktionsverarbeitungsserver darauf hinweist, die Client-Anfrage innerhalb der Ziel-Reaktionszeit zu verarbeiten und jede eingehende Client-Anfrage auf der Grundlage der Ziel-Reaktionszeit und unter Bezugnahme auf den Leistungsnachweis anzunehmen oder abzulehnen.
  • Der vorgeschlagene Ansatz ermöglicht es, dass der Server beruhend auf einer von dem Client vorgegebenen Dringlichkeitsanforderung jede Anfrage unterschiedlich behandelt. Der Server vermeidet auch, dass er durch das Verbrauchen von Ressourcen für das Verwalten von Anfragen zum Stillstand kommt, für deren Bearbeitung er zu hoch ausgelastet ist. Der Ansatz umfasst auch nicht das Verwenden einer Ressource von Drittanbietern zum Verwalten der Situation, sondern beruht ausschließlich darauf, dass der Server entsprechend der von dem Client vorgegebenen Ziel-Reaktionszeit agiert. Der Ansatz kann auch die Komplexität des Wiederherstellens von Transaktionsaufgaben auf dem Server herabsetzen, da der Client höchstwahrscheinlich keine ‚Anforderung zum Abbrechen‘ an den Server in Bezug auf eine Anfrage senden muss, auf die nicht innerhalb einer Ziel-Reaktionszeit reagiert wurde, da die Anfrage bereits im Vorfeld von dem Server abgelehnt wurde. Herkömmlicherweise erzeugen ,Anforderungen zum Abbrechen‘ Arbeit für den Server, insbesondere dann, wenn der Server mit dem Verarbeiten der Anfrage begonnen hat und dann durch einen Bereinigungsprozess aus bereits erledigter Arbeit aussteigen muss.
  • Die Verbindungsverwaltungseinheit ist optional darüber hinaus in der Lage, Anfrageablehnungsnachrichten an Clients zu übermitteln, die abgelehnte Anfragen gestellt haben. Der Client wird somit direkt darüber informiert, dass die Anfrage nicht bearbeitet wird, so dass der Client zum Beispiel die Möglichkeit hat, die Anfrage erneut an einen alternativen Server zu senden, der möglicherweise eine geringere Auslastung aufweist und eine größere Chance hat, die Anfrage schneller auszuführen. Die Anfrageablehnungsnachrichten können vorhergesagte Reaktionszeiten für das Verarbeiten der Anfrage enthalten, die unter Bezugnahme auf den Leistungsnachweis erhalten wurden. Diese zusätzlichen Informationen können dann von dem Client beim Empfangen der Ablehnung dazu verwendet werden, zu entscheiden, welches die beste Reaktion ist. Zum Beispiel hätte der Client die Möglichkeit, dieselbe Anfrage erneut an denselben Server zu senden, aber diesmal unter Vorgabe einer Ziel-Reaktionszeit, die unter Bezugnahme auf die in der Ablehnung enthaltene vorhergesagte Verarbeitungszeit festgelegt wird, z.B. gleich wie diese, oder gleich einem etwas größeren Wert, z.B. 20 % größer, 50 % größer oder doppelt.
  • Die Verbindungsverwaltungseinheit ist vorteilhafterweise in der Lage, Anfrageablehnungsnachrichten innerhalb einer viel kürzeren Zeit zu übermitteln, als das Verarbeiten der Anfrage dauern dürfte. Zum Beispiel ist die Verbindungsverwaltungseinheit in einigen Ausführungsformen in der Lage, Anfrageablehnungsnachrichten innerhalb eines Bruchteils der Ziel-Reaktionszeit zu übermitteln (z.B. 1/5, 1/10, 1/20, 1/50 und 1/100). Ein anderes Beispiel wäre das Übermitteln von Anfrageablehnungsnachrichten innerhalb eines Bruchteils einer erwarteten Reaktionszeit, die aus dem Leistungsnachweis abgeleitet wird. Allgemein sollte es das Ziel der Ausgestaltung sein, sicherzustellen, dass jede beliebige Ablehnung in einem viel kürzeren Zeitraum als die Bearbeitungszeit von Anfragen erfolgt, so dass der Client eine unmittelbare bzw. fast unmittelbare Antwort erhält, dass die Anfrage abgelehnt wurde. Dies ermöglicht es dem Client, zu reagieren, z.B. durch Senden der Anfrage an einen anderen Server.
  • Unter der Annahme, dass die Datenübertragung auf der Verbindung paketbasiert ist, was bei vielen Ausführungsformen der Fall sein wird, werden die Anfrageablehnungsnachrichten zweckmäßig in Metadaten von Server-zu-Client-Datenpaketen eingefügt, zum Beispiel als „Server ausgelastet“-Antworten. Die Metadaten könnten in ein bestimmtes Paket eingefügt werden, das zum Zwecke des Übermittelns der Ablehnung erzeugt wird, oder sie könnten einem Paket oder einer Gruppe von Paketen hinzugefügt werden, die andere Informationen enthalten, z.B. Pakete, welche die Ergebnisse einer anderen verarbeiteten Anfrage zurücksenden. Die Ziel-Reaktionszeit ist ebenfalls zweckmäßig in Metadaten der Client-Anfrage enthalten.
  • Das Prüfen auf Ablehnung/Annahme von Anfragen kann entweder global für alle Anfragen oder spezifisch für einen Transaktionstyp durchgeführt werden, wobei die Anfragen in diesem Fall einen Transaktionstyp aufweisen und der Leistungsnachweis Langzeitverarbeitungszeiten für Client-Anfragen beinhaltet. In einigen Ausführungsformen gibt es eine Langzeitverarbeitungszeit für jeden aus einer Mehrzahl von Transaktionstypen. Wenn es zum Beispiel fünf verschiedene Typen von Transaktionen gibt, dann können fünf verschiedene aktuelle Reaktionszeitwerte in dem Leistungsnachweis gepflegt werden.
  • Bei der Langzeitverarbeitungszeit kann es sich um eine durchschnittliche Zeit handeln, die sich aus den relevanten aktuellen Client-Anfragen zusammensetzt. Der Durchschnitt kann nach Aktualität gewichtet werden, wobei zuletzt bearbeitete Client-Anfragen eine höhere Gewichtung aufweisen. Alternativ könnte der Durchschnitt ein einfacher Durchschnitt ohne Gewichtung sein, d.h. bei dem jedes Element gleich gewichtet ist. Außerdem wird darauf hingewiesen, dass es sich bei dem Durchschnitt um einen Mittelwert, einen Modalwert oder einen Medianwert handeln kann.
  • In bestimmten Ausführungsformen werden eingehende Client-Anfragen auf der Grundlage eines Vergleichs der Ziel-Reaktionszeit mit einer für die zu beurteilende Client-Anfrage relevanten Langzeit-Reaktionszeit angenommen oder abgelehnt. Der Leistungsnachweis kann auf Client-Anfragen beruhen, die innerhalb eines Zeitfensters verarbeitet werden, das durch mindestens eines der folgenden Kriterien definiert ist: Zeit, z.B. in den letzten 200 Sekunden oder seit 12:28 Uhr MEZ (mitteleuropäische Zeit). Alternativ könnte das Fenster durch eine Anzahl von Client-Anfragen definiert sein, z.B. auf der Grundlage der letzten 100 verarbeiteten Anfragen oder der letzten 5 Anfragen eines bestimmten Typs, die verarbeitet wurden.
  • Der Server kann darüber hinaus eine Warteschlange aufweisen, in der Client-Anfragen für den Server eingereiht werden, wenn der Server aktuell keine Kapazität aufweist, um sie anzunehmen. In einigen Ausführungsformen dient die Verbindungsverwaltungseinheit als Türwächter für die Warteschlange, sodass Anfragen erst dann in die Warteschlange eingereiht werden, nachdem sie überprüft und angenommen wurden. Das heißt, die Verbindungsverwaltungseinheit ist in der Lage, den Zugang zu der Warteschlange so zu steuern, dass eingehende Client-Anfragen abhängig davon zu der Warteschlange hinzugefügt werden, dass sie angenommen werden, sodass abgelehnten Anfragen der Zugang zu der Warteschlange verwehrt wird. Auf diese Weise wird verhindert, dass Anfragen, die abgelehnt werden, Ressourcen der Warteschlange verbrauchen. In anderen Ausführungsformen führt die Verbindungsverwaltungseinheit ihre Überprüfung der Warteschlange so durch, dass alle Anfragen in die Warteschlange aufgenommen werden, aber erst dann die Warteschlange verlassen dürfen, nachdem sie durch die Verbindungsverwaltungseinheit geprüft und für die Transaktionsverarbeitung angenommen wurden. Das Überwachen von eingehenden Client-Anfragen durch die Verbindungsverwaltungseinheit geschieht nämlich durch Beobachten der Warteschlange, wobei abgelehnte Client-Anfragen aus der Warteschlange gelöscht werden. Dieser Ansatz ermöglicht es immer noch, dass schnelle Ablehnungen an Clients gesendet werden, während aber die Wahrscheinlichkeit vermieden wird, dass die Verbindungsverwaltungseinheit überlastet wird oder der Verbindungsverwaltungseinheit ihre eigene separate Warteschlange bereitgestellt werden muss.
  • Gemäß einem anderen Aspekt der Offenbarung wird ein Verfahren zum Verwalten von Client-Verbindungen mit einem Transaktionsverarbeitungsserver bereitgestellt, wobei das Verfahren durch den Server durchgeführt wird und Folgendes aufweist: Empfangen einer Client-Anfrage von einem Client auf einer Client-Server-Verbindung; Extrahieren einer Ziel-Reaktionszeit aus der Client-Anfrage, die angibt, wie schnell der Client die Anfrage verarbeitet haben möchte; und Annehmen oder Ablehnen der Client-Anfrage beruhend auf der Ziel-Reaktionszeit und unter Bezugnahme auf einen Leistungsnachweis darüber, wie schnell Client-Anfragen verarbeitet werden, der von dem Server gepflegt wird.
  • Das Verfahren kann darüber hinaus das Übermitteln einer Ablehnungsnachricht an den Client aufweisen, wenn die Anfrage abgelehnt wurde. In einigen Ausführungsformen enthält die Client-Anfrage eine Typklassifizierung, und der Anzeiger, der zum Annehmen bzw. Ablehnen der Anfrage verwendet wird, ist spezifisch für diesen Typ.
  • Gemäß einem anderen Aspekt der Offenbarung wird ein Computerprogrammprodukt bereitgestellt, aufweisend: ein durch einen Computer lesbares Speichermedium, auf dem Programmanweisungen enthalten sind, wobei das durch einen Computer lesbare Speichermedium nicht per se ein flüchtiges Signal ist, wobei die Programmanweisungen durch einen Prozessor ausführbar sind, um den Prozessor dazu zu veranlassen, ein Verfahren durchzuführen, das Folgendes aufweist: Empfangen einer Client-Anfrage von einem Client auf einer Client-Server-Verbindung; Extrahieren einer Ziel-Reaktionszeit aus der Client-Anfrage, wobei die Ziel-Reaktionszeit den Transaktionsverarbeitungsserver darauf hinweist, die Client-Anfrage innerhalb der Ziel-Reaktionszeit zu verarbeiten; Annehmen oder Ablehnen der Client-Anfrage beruhend auf einem Vergleich der angeforderten Ziel-Reaktionszeit mit einem Leistungsnachweis über Ausführungszeiten für einen angeforderten Typ von Transaktionen auf dem Transaktionsverarbeitungsserver; und wobei der Transaktionsverarbeitungsserver beruhend darauf, dass der Vergleich angibt, die Client-Anfrage abzulehnen, eine geschätzte Dauer für das Erledigen der Client-Anfrage in einer Ablehnungsnachricht einschließt.
  • Figurenliste
  • Im Folgenden wird die vorliegende Erfindung lediglich beispielhaft unter Bezugnahme auf beispielhafte Ausführungsformen näher beschrieben, die in den Figuren veranschaulicht sind.
    • 1 ist ein beispielhaftes Blockschaubild einer verteilten Datenverarbeitungsumgebung, in der beispielhafte Aspekte der veranschaulichenden Ausführungsformen umgesetzt werden können.
    • 2 ist ein beispielhaftes Blockschaubild eines Datenverarbeitungssystems, in dem beispielhafte Aspekte der veranschaulichenden Ausführungsformen umgesetzt werden können.
    • 3 ist eine schematische Darstellung einer Systemumgebung für Ausführungsformen der Erfindung, in der ein einzelner Server und mehrere Clients über Netzwerkverbindungen verbunden sind.
    • 4 zeigt eine Nachrichtenstruktur für Nachrichten, die über die Netzwerkverbindungen aus 3 gesendet werden.
    • 5A zeigt den Server aus 3 ausführlicher.
    • 5B zeigt einen Client aus 3 ausführlicher.
    • 6A ist ein Ablaufplan der von dem Server aus 5A durchgeführten Verbindungsverwaltung.
    • 6B ist ein Ablaufplan der von dem Client aus 5B durchgeführten Verbindungsverwaltung.
    • 7 zeigt eine Cloud-Computing-Umgebung gemäß einer Ausführungsform der vorliegenden Offenbarung.
    • 8 zeigt Abstraktionsmodellschichten gemäß einer Ausführungsform der vorliegenden Offenbarung.
  • AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • In der folgenden ausführlichen Beschreibung werden zur Erläuterung und nicht zur Einschränkung spezifische Details dargelegt, um ein besseres Verständnis der vorliegenden Offenbarung bereitzustellen. Einem Fachmann wird ersichtlich sein, dass die vorliegende Offenbarung in anderen Ausführungsformen angewendet werden kann, die von diesen spezifische Details abweichen.
  • Bei einem Client gemäß Ausführungsformen der vorliegenden Offenbarung kann es sich um jede beliebige geeignete Datenverarbeitungseinheit handeln; zum Beispiel ein Mobiltelefon (Smartphone), ein Phablet, ein Tablet, einen Laptop-Computer, eine Spielekonsole, einen Personal Computer, einen intelligenten Fernseher oder einen Media-Player. Bei der Datenverarbeitungseinheit kann es sich um eine Benutzerausrüstung handeln, wie sie durch einen oder mehrere Telekommunikationsstandards definiert ist. Bei der Datenverarbeitungseinheit kann es sich um eine tragbare, z.B. in der Hand gehaltene Datenverarbeitungseinheit oder eine fest installierte Datenverarbeitungseinheit handeln.
  • 1 ist ein beispielhaftes Blockschaubild eines verteilten Datenverarbeitungssystems 100, mit dem beispielhafte Aspekte der veranschaulichenden Ausführungsformen umgesetzt werden können. Das verteilte Datenverarbeitungssystem 100 kann ein Netzwerk von Computern enthalten, in dem Aspekte der veranschaulichenden Ausführungsformen umgesetzt werden können. Das verteilte Datenverarbeitungssystem 100 enthält mindestens ein Netzwerk 102, bei dem es sich um das Medium handelt, das zum Bereitstellen von Datenübertragungsverbindungen zwischen verschiedenen Einheiten und Computern verwendet wird, die innerhalb des verteilten Datenverarbeitungssystems 100 miteinander verbunden sind. Das Netzwerk 102 kann drahtgestützte Verbindungen, drahtlose Datenübertragungsverbindungen oder Lichtwellenleiter-Kabel enthalten. Bei dem Netzwerk 102 kann es sich um ein externes Netzwerk wie zum Beispiel das Internet oder um ein internes Netzwerk wie zum Beispiel ein Ethernet-Netzwerk oder ein virtuelles privates Netzwerk (VPN) handeln.
  • In dem abgebildeten Beispiel sind der Server 104 und der Server 106 gemeinsam mit der Speichereinheit 108 mit dem Netzwerk 102 verbunden. Außerdem sind Clients 110, 112 und 114 auch mit dem Netzwerk 102 verbunden. Bei diesen Clients 110, 112 und 114 kann es sich zum Beispiel um Personal Computer, Netzwerkcomputer o.ä. handeln. In dem abgebildeten Beispiel stellt der Server 104 den Clients 110, 112 und 114 Daten wie Startdateien, Betriebssystemabbilder sowie Anwendungen bereit. Bei den Clients 110, 112 und 114 handelt es sich in dem abgebildeten Beispiel um Clients des Servers 104. Das verteilte Datenverarbeitungssystem 100 kann zusätzliche Server, Clients und andere Einheiten beinhalten, die nicht gezeigt sind.
  • Die Server 104, 106 enthalten jeweils oder haben Zugriff auf eine Datenverarbeitungseinheit, die einen oder mehrere Prozessoren und einen oder mehrere Hauptspeicher aufweist, sowie möglicherweise jedes beliebige andere nach dem Stand der Technik bekannte Datenverarbeitungseinheit-Element, darunter Busse, Speichereinheiten, Datenübertragungsschnittstellen und dergleichen. Der Server weist einen Eingangsanschluss zum Empfangen von Datenübertragungen von anderen Datenverarbeitungseinheiten auf, darunter diejenigen, mit denen er einen Client-Server-Datenübertragungskanal bilden kann, und einen Ausgangsanschluss zum Übermitteln von Datenübertragungen an andere Datenverarbeitungseinheiten, darunter diejenigen, mit denen er einen Client-Server-Datenübertragungskanal bilden kann.
  • Bei dem verteilten Datenverarbeitungssystem 100 kann es sich in einem Beispiel um das Internet handeln, wobei das Netzwerk 102 eine weltweite Sammlung von Netzwerken und Gateways darstellt, die für den Datenaustausch untereinander die Protokoll-Suite von Transmission Control Protocol/Internet Protocol (TCP/IP) verwenden. Im Zentrum des Internet liegt ein Backbone von Hochgeschwindigkeits-Datenübertragungsleitungen zwischen Hauptknoten bzw. Host-Computern, die aus tausenden kommerziellen, Regierungs-, Bildungs- sowie anderen Computersystemen bestehen, die Daten und Nachrichten weiterleiten. Das verteilte Datenverarbeitungssystem 100 kann auch so umgesetzt sein, dass es eine Reihe verschiedener Typen von Netzwerken wie zum Beispiel ein Intranet, ein lokales Netzwerk (LAN), ein Weitverkehrsnetz (WAN) oder dergleichen enthält. Wie oben angeführt wurde, soll 1 als Beispiel dienen, nicht als bauliche Einschränkung für verschiedene Ausführungsformen des offenbarten Inhalts, und deshalb sind die bestimmten in 1 gezeigten Elemente nicht als Einschränkung bezüglich der Umgebungen anzusehen, in denen die veranschaulichenden Ausführungsformen der vorliegenden Erfindung umgesetzt werden können.
  • Wie gezeigt, können die verschiedenen Informationsverarbeitungssysteme, darunter die Server 104, 106, die Clients 110, 112, 114 und andere Netzwerkressourcen wie der Speicher 108 oder eine optionale Netzwerk-Arbeitslast-Verwaltungseinheit (nicht veranschaulicht), unter Verwendung des Computernetzwerks 102 miteinander vernetzt werden. Zu Typen des Computernetzwerks 102, die zum Verbinden der verschiedenen Informationsverarbeitungssysteme verwendet werden können, gehören lokale Netzwerke (LANs), drahtlose lokale Netzwerke (WLANs), das Internet, das öffentliche Telefonnetz (PSTN), andere drahtlose Netzwerke und jede beliebige andere Netzwerktopologie, die zum Verbinden der Informationsverarbeitungssysteme verwendet werden kann. Viele der Informationsverarbeitungssysteme beinhalten nichtflüchtige Datenspeicher wie zum Beispiel Festplattenlaufwerke und/oder nichtflüchtigen Hauptspeicher. Bei dem nichtflüchtigen Datenspeicher kann es sich um eine Komponente handeln, die sich außerhalb der verschiedenen Informationsverarbeitungssysteme befindet oder die sich innerhalb eines der Informationsverarbeitungssysteme befinden kann.
  • 2 ist ein Blockschaubild eines Datenverarbeitungssystems, in dem veranschaulichende Ausführungsformen umgesetzt werden können. Das Datenverarbeitungssystem 200 ist ein Beispiel eines Computers, wie zum Beispiel des Servers 104 oder des Clients 110 in 1, in dem sich durch einen Computer verwendbarer Programmcode bzw. Anweisungen, welche die Prozesse umsetzen, für die veranschaulichenden Ausführungsformen befinden können. In diesem veranschaulichenden Beispiel beinhaltet ein Datenverarbeitungssystem 200 ein Datenübertragungsnetz 202, das den Austausch von Daten zwischen einer Prozessoreinheit 204, einem Hauptspeicher 206, einem dauerhaften Speicher 208, einer Datenübertragungseinheit 210, einer Eingabe/Ausgabe- (E/A-) Einheit 212 und einer Anzeige 214 bereitstellt.
  • Die Prozessoreinheit 204 dient zur Ausführung von Software-Anweisungen, die in den Hauptspeicher 206 geladen werden können. Abhängig von der jeweiligen Ausführung kann es sich bei der Prozessoreinheit 204 um einen Satz von einem oder mehreren Prozessoren oder einen Multiprozessorkern handeln. Des Weiteren kann die Prozessoreinheit 204 unter Verwendung einer oder mehrerer heterogener Prozessorsysteme ausgeführt sein, in denen ein Hauptprozessor mit Nebenprozessoren auf einem einzigen Chip vorhanden ist. Als weiteres veranschaulichendes Beispiel kann es sich bei der Prozessoreinheit 204 um ein symmetrisches Multiprozessor- (SMP-) System handeln, das mehrere Prozessoren desselben Typs enthält.
  • Der Hauptspeicher 206 und der dauerhafte Speicher 208 sind Beispiele von Speichereinheiten. Eine Speichereinheit ist eine beliebige Hardware, die Daten entweder auf vorübergehender Grundlage und/oder auf dauerhafter Grundlage speichern kann. Der Hauptspeicher 206 kann in diesen Beispielen beispielsweise ein Direktzugriffsspeicher oder jede beliebige andere geeignete flüchtige oder nichtflüchtige Speichereinheit sein. Abhängig von der entsprechenden Ausführung kann der dauerhafte Speicher 208 verschiedene Formen annehmen. Der dauerhafte Speicher 208 kann zum Beispiel ein oder mehrere Bauelemente oder Einheiten enthalten. Bei dem dauerhaften Speicher 208 kann es sich zum Beispiel um ein Festplattenlaufwerk, einen Flash-Speicher, eine wiederbeschreibbare optische Platte, ein wiederbeschreibbares Magnetband, Bernoulli-Kassetten oder eine Kombination aus diesen handeln. Die von dem dauerhaften Speicher 208 verwendeten Medien können auch auswechselbar sein. Es kann zum Beispiel ein Wechselplattenlaufwerk für den dauerhaften Speicher 208 verwendet werden.
  • Die Datenübertragungseinheit 210 sorgt in diesen Beispielen für die Datenübertragung zu anderen Datenverarbeitungssystemen oder -einheiten. In diesen Beispielen ist die Datenübertragungseinheit 210 eine Netzwerkschnittstellenkarte. Die Datenübertragungseinheit 210 kann die Datenübertragung durch Verwendung von physischen und/oder drahtlosen Datenübertragungsverbindungen bereitstellen.
  • Die Eingabe/Ausgabe-Einheit 212 ermöglicht die Eingabe und Ausgabe von Daten von/zu anderen Einheiten, die gegebenenfalls mit dem Datenverarbeitungssystem 200 verbunden sind. Die Eingabe/Ausgabe-Einheit 212 kann zum Beispiel eine Verbindung für Benutzereingaben über eine Tastatur und eine Maus bereitstellen. Des Weiteren kann die Eingabe/Ausgabe-Einheit 212 Daten an einen Drucker ausgeben. Die Anzeige 214 stellt einen Mechanismus zur Anzeige von Daten für einen Benutzer bereit.
  • Anweisungen für das Betriebssystem und Anwendungen oder Programme befinden sich auf dem dauerhaften Speicher 208. Diese Anweisungen können in den Speicher 206 geladen werden, um von der Prozessoreinheit 204 ausgeführt zu werden. Die Prozesse der verschiedenen Ausführungsformen können von der Prozessoreinheit 204 unter Verwendung von auf einem Computer ausgeführten Anweisungen durchgeführt werden, die sich in einem Speicher wie dem Speicher 206 befinden können. Diese Anweisungen werden Programmcode, von einem Computer verwendbarer Programmcode oder durch einen Computer lesbarer Programmcode, der von einem Prozessor in der Prozessoreinheit 204 gelesen und ausgeführt werden kann, genannt. Der Programmcode in den verschiedenen Ausführungsformen kann in verschiedenen physischen oder greifbaren durch einen Computer lesbaren Medien wie dem Hauptspeicher 206 oder dem dauerhaften Speicher 208 enthalten sein.
  • Der Programmcode 216 befindet sich in einer funktionalen Form auf dem durch einen Computer lesbaren Medium 218, das wahlweise austauschbar ist und zur Ausführung durch die Prozessoreinheit 204 in ein Datenverarbeitungssystem 200 geladen oder übertragen werden kann. Der Programmcode 216 und das durch einen Computer lesbare Medium 218 bilden in diesen Beispielen ein Computerprogrammprodukt 220. In einem Beispiel kann das durch einen Computer lesbare Medium 218 eine physische Form wie zum Beispiel eine optische oder magnetische Platte aufweisen, die zur Übertragung auf eine Speichereinheit wie ein Festplattenlaufwerk, das Teil des dauerhaften Speichers 208 ist, in ein Laufwerk oder eine andere Einheit, die Teil des dauerhaften Speichers 208 ist, eingeschoben oder eingelegt wird. In einer physischen Form kann das durch einen Computer lesbare Medium 218 auch die Form eines dauerhaften Speichers wie ein Festplattenlaufwerk, ein Thumb-Drive oder ein Flash-Speicher annehmen, der mit dem Datenverarbeitungssystem 200 verbunden ist. Die physische Form des durch einen Computer lesbaren Mediums 218 wird auch durch einen Computer beschreibbares Speichermedium genannt. In einigen Fällen kann das durch einen Computer beschreibbare Medium 218 auch nicht austauschbar sein.
  • Alternativ kann der Programmcode 216 über eine Datenübertragungsverbindung mit der Datenübertragungseinheit 210 und/oder durch eine Verbindung mit der Eingabe/AusgabeEinheit 212 von dem durch einen Computer lesbaren Medium 218 auf das Datenverarbeitungssystem 200 übertragen werden. In den veranschaulichenden Beispielen können die Datenübertragungsverbindung und/oder die Verbindung physisch oder drahtlos sein. Das durch einen Computer lesbare Medium kann auch die Form von nicht-physischen Medien wie Datenübertragungsverbindungen oder drahtlosen, den Programmcode enthaltenden Übertragungen annehmen. Die verschiedenen für das Datenverarbeitungssystem 200 dargestellten Komponenten stellen keine baulichen Einschränkungen für die Art und Weise, in der verschiedene Ausführungsformen umgesetzt werden können, dar. Die verschiedenen veranschaulichenden Ausführungsformen können in einem Datenverarbeitungssystem realisiert werden, das zusätzlich zu oder an Stelle der für das Datenverarbeitungssystem 200 dargestellten Komponenten andere Komponenten enthält. Andere in 2 gezeigte Komponenten können abweichend von den gezeigten veranschaulichenden Beispielen variiert werden. Als ein Beispiel kann es sich bei der Speichereinheit in dem Datenverarbeitungssystem 200 um jede beliebige Hardware-Vorrichtung handeln, die Daten speichern kann. Der Hauptspeicher 206, der dauerhafte Speicher 208 und das durch einen Computer lesbare Medium 218 sind Beispiele von Speichereinheiten in physischer Form.
  • In einem anderen Beispiel kann ein Bussystem zur Realisierung des Datenübertragungsnetzes 202 verwendet werden und dabei aus einem oder mehreren Bussen wie einem Systembus oder einem Eingabe/Ausgabe-Bus bestehen. Natürlich kann das Bussystem unter Verwendung einer beliebigen Art einer Architektur ausgeführt werden, die eine Übertragung von Daten zwischen verschiedenen an das Bussystem angeschlossenen Komponenten oder Einheiten gewährleistet. Außerdem kann eine Datenübertragungseinheit eine oder mehrere für das Senden und Empfangen von Daten verwendete Einheiten wie einen Modem oder einen Netzwerkadapter enthalten. Des Weiteren kann ein Hauptspeicher zum Beispiel der Hauptspeicher 206 oder ein Cachespeicher sein, wie man ihn in einem Schnittstellen- und Speicher-Controller-Hub findet, der in dem Datenübertragungsnetz 202 vorhanden sein kann.
  • Computerprogrammcode für das Ausführen von Vorgängen der vorliegenden Erfindung kann in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie zum Beispiel Java™, C++, C#, Objective-C oder dergleichen sowie herkömmliche prozedurale Programmiersprachen. Der Programmcode kann vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters).
  • Ein Fachmann wird verstehen, dass die in 1 und 2 abgebildete Hardware je nach Umsetzung variieren kann. Zusätzlich zu oder an Stelle der in der 1 und 2 abgebildeten Hardware können andere interne Hardware- oder Peripherie-Einheiten wie Flash-Speicher, gleichwertige nichtflüchtige Speicher bzw. optische Plattenlaufwerke und dergleichen verwendet werden. Ebenso können die Prozesse der veranschaulichenden Ausführungsformen auf ein anderes Multiprozessor-Datenverarbeitungssystem als das vorher erwähnte SMP-System angewendet werden.
  • Wie ersichtlich werden wird, können die hierin beschriebenen Techniken zusammen innerhalb des wie in 1 veranschaulichten Standard-Client-Server-Konzepts funktionieren, in denen Client-Maschinen mit einem über das Internet zugänglichen, auf dem Web beruhenden Portal Daten austauschen, das auf einer Reihe von einer oder mehrerer Maschinen ausgeführt wird. Endbenutzer bedienen mit dem Internet verbindbare Einheiten (z.B. Desktop-Computer, Notebook-Computer, Internet-fähige mobile Geräte o.ä.), die in der Lage sind, auf das Portal zuzugreifen und mit diesem Daten auszutauschen. Üblicherweise handelt es sich bei jeder Client- bzw. Server-Maschine um ein wie in 2 veranschaulichtes Datenverarbeitungssystem, das Hardware und Software aufweist, und diese Einheiten tauschen über ein Netzwerk wie das Internet, ein Intranet, ein Extranet, ein privates Netzwerk oder jedes beliebige andere Datenübertragungsmedium bzw. jede beliebige andere Datenübertragungsverbindung Daten miteinander aus. Ein Datenverarbeitungssystem enthält üblicherweise einen oder mehrere Prozessoren, ein Betriebssystem, eine oder mehrere Anwendungen und ein oder mehrere Dienstprogramme. Die Anwendungen auf dem Datenverarbeitungssystem stellen native Unterstützung für Web-Services bereit, darunter unter anderem ohne Einschränkung Unterstützung für HTTP, SOAP, XML, WSDL, UDDI sowie WSFL. Informationen bezüglich SOAP, WSDL, UDDI und WSFL sind von dem World Wide Web Consortium (W3C) erhältlich, das für das Entwickeln und Pflegen dieser Standards zuständig ist; weitere Informationen bezüglich HTTP und XML sind von der Internet Engineering Task Force (IETF) erhältlich. Vertrautheit mit diesen Standards wird vorausgesetzt.
  • In verschiedenen Ausführungsformen kann es sich bei dem Netzwerk 102 um ein öffentliches Netzwerk wie zum Beispiel das Internet, ein physisches privates Netzwerk, ein virtuelles privates Netzwerk (VPN) oder eine beliebige Kombination aus diesen handeln. In bestimmten Ausführungsformen kann es sich bei dem Netzwerk 102 um ein drahtloses Netzwerk handeln, darunter ein Personal Area Network (PAN), das auf Technologien wie Bluetooth oder Ultra Wideband (UWB) beruht. In verschiedenen Ausführungsformen kann das drahtlose Netzwerk ein drahtloses lokales Netzwerk (WLAN) umfassen, das auf Abwandlungen der IEEE 802.11-Spezifikation beruht, häufig als Wi-Fi bezeichnet. In bestimmten Ausführungsformen kann das drahtlose Netzwerk ein drahtloses Weitverkehrsnetz (WWAN) umfassen, das auf einem Industriestandard beruht, der zweieinhalb Generationen (2.5G) von drahtlosen Technologien wie zum Beispiel GPRS (Global System for Mobile Communications) und EDGE (Enhanced Data Rates for GSM Evolution) aufweist. In verschiedenen Ausführungsformen kann das drahtlose Netzwerk WWANs umfassen, die auf drahtlosen Technologien der dritten, vierten oder fünften Generation (3G, 4G, 5G) beruhen, darunter UMTS (Universal Mobile Telecommunications System) und Wideband-CDMA (Wideband Code-Division Multiple Access) sowie NR (New Radio).
  • Andere Ausführungsformen können die Umsetzung anderer 3G-Technologien umfassen, darunter EVDO (Evolution-Data Optimized), IEEE 802.16 (WiMAX), WiBro (Wireless Broadband), HSDPA (High Speed Downlink Packet Access), HSUPA (High Speed Uplink Packet Access) und drahtlose 4G- oder 5G-Technologien.
  • Ein Server in dem Kontext von Ausführungsformen der Offenbarung kann in einigen Fällen auch ein ,klassischer‘ Großrechner sein, oder in einem Großrechner gehostet werden. Großrechnersysteme werden weithin für eine Vielfalt von Datenverarbeitungsfunktionen verwendet. Zum Beispiel wurden viele Finanz- und Buchhaltungssysteme für Unternehmen für Großrechner-Datenverarbeitungssysteme entwickelt und laufen auf diesen Systemen. Obwohl der Einsatz von Personal Computern und Personal-Computer-Netzen in den letzten Jahren stark zugenommen hat, wird erwartet, dass Großrechnersysteme, die als Legacy-Systeme bezeichnet werden, auch in den kommenden Jahren für viele Typen von Datenverarbeitung beliebt bleiben werden. Ein Großrechnersystem umfasst in der Regel mehrere Benutzerterminals, die an einen Großrechner-Host-Computer angeschlossen sind. Verschiedene Softwareanwendungen können sich auf dem Host-Computer befinden oder für diesen zugänglich sein. Die Benutzerterminals, die manchmal auch als Client-Terminals oder „Clients“ bezeichnet werden, tauschen über ein Host-Datenübertragungssystem mit dem Großrechner-Host-Computer Daten aus. Das IBM 3270-Terminalsystem ist eines der am weitesten verbreiteten Systeme zum Austauschen von Daten mit Hostrechnern. Üblicherweise verfügt ein 3270-Terminal nicht über eigene Datenverarbeitungsfunktionen. Stattdessen kann ein 3270-Terminal Bildschirme anzeigen, die von Anwendungen erzeugt werden, die auf einem Host laufen, und Daten von einem Benutzer zur Verarbeitung an einen Host zurückübertragen. Eine Benutzerschnittstelle eines IBM 3270-Terminalsystems weist eine Vielzahl von Bildschirmen auf, die von Host-Anwendungen zur Anzeige auf dem 3270-Terminal erzeugt werden. In den letzten Jahren wurden viele 3270-Terminals durch Personal Computer (PCs) ersetzt, die so konfiguriert sind, dass sie über eine 3270-Terminal-Emulationssoftware mit dem Großrechnersystem Daten austauschen.
  • In vielen Anwendungen greifen heute 3270-Terminals oder andere Datenverarbeitungseinheiten (z.B. ein PC) über das Internet auf den Host-Computer zu. Zum Beispiel können in Systemen, die unter den TN3270E-Protokollen arbeiten, die 3270-Terminals über eine Kombination aus einer TCP/IP-Verbindung zwischen dem TN3270E-Client-Terminal und einem TN3270E-Server und über eine SNA- (Systems Network Architecture-) Sitzung zwischen dem TN3270E-Server und der SNA-Anwendungssoftware auf dem Host-Großrechner auf die Anwendungssoftware auf einem Host-Computer zugreifen.
  • Es ist auch bekannt, Client-Server-Technologien in Großrechner-Datenverarbeitungsumgebungen zu integrieren. Ein repräsentatives Mehrkomponentensystem dieses Typs, bei dem die Komponenten kooperativ zusammenarbeiten, um ein größeres System zu bilden, ist die IBM® HyperText Transfer Protocol- (HTTP-) und Web Services-Verarbeitungsumgebung, die unter Verwendung von IBM-Großrechnern wie zum Beispiel der IBM z196-Familie von Datenverarbeitungsmaschinen umgesetzt werden kann. Diese Umgebung umfasst in der Regel das Middleware-Plattform-Softwareprodukt IBM WebSphere® Application Server (WAS), das in Verbindung mit einem oder mehreren Transaktionsverarbeitungsprodukten wie zum Beispiel IBM CICS (Customer Information Control System) und/oder IBM Information Management System (IMS), einem Nachrichtenverarbeitungsprodukt wie zum Beispiel IBM WebSphere® MQ und einer relationalen Datenbank wie zum Beispiel IBM DB2® zusammenarbeitet. Ein Ziel einer Mehrkomponentenumgebung ist es, ein(e) hochleistungsfähige(s) Datenverarbeitungssystem oder -umgebung für die Transaktionsverarbeitung bereitzustellen, das bzw. die Client-Endbenutzern über Internetbrowser unter Verwendung von HTTP oder anderen Webdiensten zugänglich ist. In dieser Umgebung tauscht der Client-Endbenutzer, der die HTTP- oder Web-Service-Anfrage stellt, direkt mit dem Anwendungsserver Daten aus. Üblicherweise ruft der Anwendungsserver zur Erfüllung der Transaktionsanfrage von dem verteilten Client-Endbenutzer die Dienste einer oder mehrerer anderer Komponenten in der Umgebung auf. Eine oder mehrere dieser Komponenten werden üblicherweise auf einem Betriebssystem wie zum Beispiel dem IBM z/OS Betriebssystem ausgeführt, das häufig als „Mainframe“-Betriebssystemplattform bezeichnet wird.
  • 3 ist eine schematische Darstellung einer Systemumgebung für Ausführungsformen der Erfindung, in der ein einzelner Server und mehrere Clients über Netzwerkverbindungen verbunden sind. Ein Server 10, bei dem es sich zum Beispiel um einen CICS-Transaktionsserver (TS) handeln kann und der einem der in 1 gezeigten Server entsprechen kann, befindet sich in einem Systembereich, in dem auch mehrere Clients 20 angeordnet sind. Das System verwendet ein Netzwerkprotokoll wie zum Beispiel TCP/IP, um die Datenübertragung zwischen den verschiedenen Knoten zu ermöglichen. Jeder Client 20 ist in der Lage, eine Netzwerkverbindung 15 über das Netzwerkprotokoll zu mindestens dem Server 10 herzustellen. Die Netzwerkverbindungen bleiben bis zur Beendigung bestehen, können also eine lange Lebensdauer aufweisen. Ausgewählte Clients sind mit aktuell bestehenden Netzwerkverbindungen zu dem Server gezeigt, wobei darauf hingewiesen wird, dass mehrere gleichzeitige Netzwerkverbindungen dargestellt sind. Jede aufgebaute Netzwerkverbindung wird durch Senden und Empfangen von Nachrichten 30, üblicherweise in Paketform, von dem Server zu dem Client bzw. von dem Client zu dem Server verwaltet. Client-zu-Server-Nachrichten können Aufgaben oder Anfragen für den Server enthalten, und Server-zu-Client-Nachrichten können Antworten auf derartige Aufgaben oder Anfragen enthalten.
  • 4 zeigt eine Nachrichtenstruktur für Nachrichten, die über die Netzwerkverbindungen aus 3 gesendet werden. Jede Nachricht weist einen Kopfzeilenteil 32 und einen Nutzdaten- bzw. Hauptteil 34 auf. Die Kopfzeile enthält Steuerinformationen, die von der Verbindungsverwaltungseinheit des Nachrichtenempfängers verwendet werden, während der Hauptteil 34 Details über den Dienst enthält, den der Client dort ausführen möchte. Der Kopfzeilenteil 32 kann in einen Satz von mehreren Feldern 321 , 322 ... 32n aufgeteilt werden, die jeweils unterschiedliche Befehls- und Steuerinformationen in Bezug auf die Nachricht übertragen, mit denen ihr Nutzdatenteil 34 beim Empfangen in geeigneter Weise verarbeitet werden kann. Es wird darauf hingewiesen, dass die Kopfzeilenfelder einfach als Kopfzeilen bezeichnet werden können, so dass jede Nachricht als aus einem Satz von einer oder mehreren Kopfzeilen und einem Hauptteil bestehend beschrieben werden kann.
  • 5A zeigt den Server 10 aus 3 ausführlicher. Als Beispiel zum Erörtern der Funktionsprinzipien sind zwei aktuelle Client-Verbindungen 151 und 152 gezeigt, obwohl man verstehen wird, dass es eine beliebige Anzahl von eins aufwärts geben kann und in der Praxis die Anzahl in der Regel mehr als zwei beträgt. Ein Client-Server-Anschluss 27 dient als Eingabe/Ausgabe-Schnittstelle des Servers 10 und ist insbesondere in der Lage, die einzelnen Client-Server-Verbindungen 151 und 152 zu dem Server 10 herzustellen, aufrechtzuerhalten und zu beenden. Pakete 301 und 302 werden von den jeweiligen Clients über die Verbindungen 151 bzw. 152 gesendet, wobei die Pakete Nachrichten für den Server 10 enthalten, darunter Anfragen oder Aufgaben. Für jede der Verbindungen kann eine Höchstgrenze für gleichzeitige Anfragen festgelegt werden. Zum Beispiel könnte die Höchstgrenze für gleichzeitige Anfragen für die Verbindung 151 bei 100 und für die Verbindung 152 bei 50 liegen, wobei die Höchstgrenze für gleichzeitige Anfragen des Servers bei 120 liegt. Dies ist eine übliche Konfiguration insofern als das kombinierte Sitzungslimit für gleichzeitige Verbindungen von 150 die Grenze des Servers von 120 überschreitet.
  • Die eingehenden Anfragen werden in eine Warteschlange 25 eingereiht, die in einen Transaktionsverarbeitungsbereich 22 (TPR, transaction processing region) des Servers 10 eingespeist wird, der die Anfragen oder Aufgaben bearbeitet. Wenn der TPR 22 nicht mit voller Kapazität arbeitet, werden die Anfragen ohne merkliche Wartezeit in der Warteschlange 25 direkt in den TPR 22 eingegeben oder können die Warteschlange komplett umgehen. Wenn der TPR 22 hingegen mit voller Kapazität arbeitet, werden die Anfragen in eine Warteschlange eingereiht. Verarbeitete Anfragen werden beantwortet, indem der TPR 22 Antwortinformationen ausgibt, die zu Paketen zusammengestellt und an den Client, von dem die Anfrage auf der Client-Verbindung 151 , 152 usw. ausgegangen ist, zurückgesendet werden, wie durch die Pfeillinien, die von dem TPR zu den Client-Verbindungen 151 und 152 zeigen, angezeigt wird.
  • Der Server 10 ist zusätzlich mit einer Verbindungsverwaltungseinheit (CM, connection manager) 24 und einer Server-Leistungsüberwachung (SPM, server performance monitor) 26 versehen.
  • Die Rolle der SPM 26 besteht darin, einen Leistungsnachweis darüber zu pflegen, wie schnell Client-Anfragen verarbeitet werden. Dies geschieht durch Speichern einer durchschnittlichen Reaktionszeit für jeden Transaktionstyp, wie zum Beispiel durch eine Transaktionskennung ,Transaktions-ID‘ festgelegt, wie in 5A angegeben, wo der SPM 26 als eine Nachschlagetabelle enthaltend gezeigt ist, in der vier Transaktions-IDs TRAN1 ... 4 jeweils mit einem durchschnittlichen aktuellen Reaktionszeitwert von 4,5, 5,0, 4,5 bzw. 5,5 Sekunden gezeigt sind. Bei den letzten Reaktionszeiten handelt es sich also um eine Langzeitaufzeichnung aktueller Bearbeitungszeiten. Der Durchschnitt kann nach Aktualität gewichtet werden, wobei zuletzt bearbeitete Client-Anfragen eine höhere Gewichtung aufweisen. Alternativ könnte der Durchschnitt ein einfacher Durchschnitt ohne Gewichtung sein, d.h. bei dem jedes Element gleich gewichtet ist. Außerdem wird darauf hingewiesen, dass es sich bei dem Durchschnitt um einen Mittelwert, einen Modalwert oder einen Medianwert handeln kann. Der Leistungsnachweis kann auf Client-Anfragen beruhen, die innerhalb eines Zeitfensters verarbeitet werden, das durch mindestens eines der folgenden Kriterien definiert ist: Zeit, z.B. in den letzten 200 Sekunden oder seit 12:28 Uhr MEZ. Alternativ könnte das Fenster durch eine Anzahl von Client-Anfragen definiert sein, z.B. auf der Grundlage der letzten 100 verarbeiteten Anfragen oder der letzten 5 Anfragen eines bestimmten Typs, die verarbeitet wurden. Die Fensterwerte für Zeit, Anzahl von Anfragen und Anzahl von Anfragen innerhalb eines bestimmten Typs können zum Beispiel von einem Systemadministrator konfiguriert werden.
  • Die Rolle der CM 24 besteht darin, eingehende Client-Anfragen zu überwachen. Dies geschieht durch Extrahieren einer in der Anfrage gespeicherten Ziel-Reaktionszeit, die angibt, wie schnell der Client die Anfrage verarbeitet haben möchte. Die CM 24 nimmt dann jede eingehende Client-Anfrage an oder lehnt sie ab, beruhend auf einem Vergleichen der Ziel-Reaktionszeit mit einer erwarteten Reaktionszeit, die entweder in dem Leistungsprotokoll gespeichert ist oder aus in dem Leistungsnachweis gespeicherten Informationen abgeleitet wird. Bei Ablehnung einer Anfrage erzeugt die Verbindungsverwaltungseinheit eine Anfrageablehnungsnachricht für den anfordernden Client oder veranlasst die Erzeugung einer derartigen Nachricht, die dann über die Verbindung an diesen Client übermittelt wird.
  • Bei paketbasierter Datenübertragung auf der Client-Server-Verbindung, was bei vielen Ausführungsformen der Fall sein wird, werden die Anfrageablehnungsnachrichten durch den Client-Server-Anschluss 27 zweckmäßig in Metadaten von Server-zu-Client-Datenpaketen eingefügt, zum Beispiel als „Server ausgelastet“-Antworten. Die Metadaten könnten in ein bestimmtes Paket eingefügt werden, das zum Zwecke des Übermittelns der Ablehnung erzeugt wird, oder sie könnten einem Paket oder einer Gruppe von Paketen hinzugefügt werden, die andere Informationen enthalten, z.B. Pakete, welche die Ergebnisse einer anderen verarbeiteten Anfrage zurücksenden.
  • Für den Fall, dass die eingehende Client-Anfrage keine Ziel-Reaktionszeit enthält, d.h. der Client nicht so konfiguriert ist, dass er nach dem vorgeschlagenen Ansatz arbeitet, kann die CM 24 entweder mit einer Standardeinstellung zum Annehmen der Anfrage oder mit einer Standardeinstellung zum Ablehnen der Anfrage konfiguriert werden. Die Standardeinstellung kann unabhängig angewendet werden, oder die Standardeinstellung kann beruhend auf der aktuellen Serverauslastung oder der Anzahl von ausstehenden gleichzeitigen Anfragen adaptiv zwischen ,annehmen‘ und ,ablehnen‘ geändert werden.
  • Die CM 24 hat auch die unabhängige Rolle, die Anzahl von Anfragen zu überwachen, die von jeder an die Clients angeschlossenen Verbindung eingehen, und von welchem Client die Anfragen stammen. Zum Beispiel kann die CM 24 zu einem Zeitpunkt wissen, dass es 38 noch nicht beantwortete Anfragen von einer ersten Verbindung und 17 noch nicht beantwortete Anfragen von einer zweiten Verbindung gibt. Die CM24 überwacht Verbindungen, die aufgebaut und beendet werden, und führt so eine Aufzeichnung über die derzeit aktiven Verbindungen und für jede aktive Verbindung die maximale Anzahl von gleichzeitigen Anfragen, die sie unterstützen kann oder darf. Die CM 24 kann auch eine Aufzeichnung über die maximale Anzahl von ausstehenden Anfragen von jeder Verbindung während einer aktuellen Sitzung oder in der jüngsten Vergangenheit auf der Grundlage eines rollierenden Zeitfensters führen. Diese maximale Anzahl wird daher eine hohe Wasserstandsmarke der Aktivität für eine bestimmte Verbindung darstellen.
  • Die SPM 26 überwacht die freie Kapazität des Servers 10 und insbesondere des TPR 22 für die Bearbeitung von Client-Anfragen. Die SPM 26 hat Kenntnis über die maximale Kapazität des Servers 10 und überwacht, wie viele Anfragen er gerade bearbeitet, und überwacht damit den Auslastungspegel des Servers. Insbesondere erkennt die SPM 26, wenn sich der Server 10 seiner vollen Kapazität annähert oder diese erreicht hat. Die SPM 26 kann direkt überwachen, wie viele Anfragen der Server bearbeitet, oder kann durch Überwachen des Füllstands der Warteschlange 25 darauf schließen, dass die volle Kapazität erreicht wurde. Das heißt, wenn die Warteschlange 25 leer oder nahezu leer ist, kann darauf geschlossen werden, dass der Server über freie Kapazitäten verfügt, wohingegen, wenn mehrere Anfragen in die Warteschlange eingereiht werden oder die Verweildauer in der Warteschlange pro Anfrage über einer Schwellenzeit liegt, darauf geschlossen werden kann, dass der Server mit voller oder nahezu voller Kapazität arbeitet. Die SPM 26 ist auch in der Lage, Metadaten in jeder Anfrage zu analysieren, entweder in den eingehenden Paketen 30 oder in den in der Warteschlange 25 wartenden Anfragen, die als Kennung des anfragenden Clients 20 oder der Client-Server-Verbindung 15 dienen.
  • Dies ist ein Beispiel für eine Client-Anfrage-Verwaltungsaktivität zum Vermeiden von Überlastungen, die vollkommen unabhängig von dem vorgeschlagenen Verfahren des Vorabprüfens von Anfragen auf der Grundlage des Vergleichens der gewünschten Ziel-Reaktionszeit mit einer vorhergesagten Reaktionszeit arbeitet. Man wird daher verstehen, dass das vorgeschlagene Verfahren, das auf dem Vergleichen von Ziel-Reaktionszeiten mit jüngsten durchschnittlichen Reaktionszeiten beruht, der einzige Mechanismus zur Bewältigung hoher Auslastungen sein kann oder einer von mehreren Bewältigungsmechanismen sein kann, die getrennt und unabhängig voneinander parallel arbeiten.
  • 5B zeigt ein Beispiel eines der Clients 20 aus 3 ausführlicher. Der Client 20 weist einen Client-Server-Anschluss 33 auf, der in der Lage ist, Client-Server-Verbindungen zu einem oder mehreren Servern herzustellen, aufrechtzuerhalten und zu beenden, wobei jede Verbindung in der Lage ist, Client-Anfragen an einen bestimmten Server zu übermitteln, zum Beispiel unter Verwendung der Pakete 301 , wie veranschaulicht. Der Client 20 verfügt auch über einen Client-Anfragen-Generator 29, der in der Lage ist, Ziel-Reaktionszeiten in Client-Anfragen aufzunehmen, die den Server darüber informieren, wie schnell Antworten gewünscht werden. Dies geschieht durch Speichern einer Ziel-Reaktionszeit für jeden Transaktionstyp, wie zum Beispiel durch eine Transaktions-ID festgelegt ist, wie in 5B mit einer Nachschlagetabelle 31 angegeben, in der Ziel-Reaktionszeiten für jede von vier Transaktions-IDs TRAN1 ... 4 gespeichert sind, die Zeitwerte von 2,0, 2,0, 3,0 bzw. 6,0 Sekunden aufweisen. Die Ziel-Reaktionszeiten sind somit spezifisch für jeden bestimmten Client, d.h. lokal für diesen Client. Es wird angemerkt, dass, obwohl die Informationen als in einer Nachschlagetabelle dargestellt gezeigt sind, und dies eine mögliche Umsetzung in der realen Welt ist, in anderen Ausführungsformen dieselben Informationen in die Anwendungslogik eingebettet sein könnten. Allgemein könnten die Informationen über die Reaktionszeit-Ziele in jeder geeigneten Umsetzungsform eingebunden sein.
  • Der Client 20 kann bei jeder Anfrage, die er an den Transaktionsverarbeitungsserver 10 sendet, das Reaktionszeitziel als Metadaten mitliefern. Der Server 10 kann dann einen Fehler ,Server ausgelastet‘ oder einen genaueren Fehler zurückmelden, wenn die Analyse des Servers auf der Grundlage des aktuellen Systemzustands ergibt, dass das Reaktionszeitziel wahrscheinlich nicht erreicht wird. Da der Transaktionsverarbeitungsserver 10 einen jüngsten Verlauf der Transaktions-Reaktionszeiten, klassifiziert nach Transaktions-ID, führt, wenn der Server stark belastet wird, verschlechtern sich die Reaktionszeiten, und dies spiegelt sich in dem Leistungsnachweis bezüglich jüngster Transaktionen wider. Das Reaktionszeitziel wird als Metadaten angehängt, welche die Anfrage zur Durchführung einer Transaktion in dem Transaktionsverarbeitungsbereich 22 begleiten.
  • Wenn die Client-Anfrage in der CM 24-Komponente des Transaktionsverarbeitungsservers 10 eintrifft, werden das Reaktionszeitziel und die Transaktions-ID aus den Metadaten extrahiert und es wird auf die Verlaufsdaten für die Transaktions-ID der Anfrage zugegriffen. Wenn das Ziel als erreichbar erachtet wird, wird die Anfrage angenommen. Wenn es andererseits als nicht erreichbar erachtet wird, wird die Anfrage unmittelbar mit einer Antwort wie zum Beispiel einer SERVER_AUSGELASTET-Antwort abgelehnt. Optional könnte die vorhergesagte Reaktionszeit für die Transaktions-ID als Metadaten mit der SERVER_AUSGELASTET-Antwort zurückgemeldet werden, so dass der Client in der Lage ist, diese zusätzliche Information beim Entscheiden, wie er am besten auf die Ablehnung reagiert, zu berücksichtigen.
  • In den veranschaulichten Beispielwerten, die in den Nachschlagetabellen der 5A und 5B gezeigt sind, ist der Transaktionsverarbeitungsbereich 22 stark ausgelastet, wobei die jüngsten Reaktionszeitmittelwerte alle in Vielfachen von Sekunden vorliegen. Beruhend auf den von dem Client vorgegebenen Reaktionszeitzielen ist die einzige Transaktions-ID, die der Server zu diesem Zeitpunkt annehmen würde, TRAN4.
  • Nachdem der ,Server ausgelastet‘-Code oder eine andere Ablehnungsnachricht empfangen wird, kann der Client auf eine von mehreren Arten reagieren. Zum Beispiel könnte er eine der folgenden Aktionen durchführen, optional unter Verwendung der vorhergesagten Reaktionszeit von dem Server, wenn diese als Teil der Ablehnungsnachricht von dem Server an den Client zurückgesendet wurde:
    1. a. erneutes Senden der Anfrage an ein anderes Serversystem; b. erneutes Senden der Anfrage an denselben Server mit einer längeren Ziel-Reaktionszeit, z.B. einer, die der vorhergesagten Reaktionszeit des Servers entspricht oder diese überschreitet; c. Fehlschlagen der Anfrage und Rückmeldung eines Fehlers an die aufrufende Schnittstelle.
  • 6A ist ein Ablaufplan der von dem Server aus 5A durchgeführten Verbindungsverwaltung.
  • In Schritt S61 wird in Zusammenarbeit mit einem Client eine Client-Server-Verbindung aufgebaut, indem der Server eine Verbindungsanforderung von einem Client annimmt.
  • In Schritt S62 empfängt der Server eine Anfrage von einem Client auf der Client-Server-Verbindung.
  • In Schritt S63 extrahiert der Server aus der Client-Anfrage eine Ziel-Reaktionszeit, die angibt, wie schnell der Client die Anfrage verarbeitet haben möchte.
  • In Schritt S64 überprüft, d.h. analysiert, der Server die Anfrage, um beruhend auf der von dem Client in der Client-Anfrage vorgegebenen Ziel-Reaktionszeit zu entscheiden, ob sie angenommen oder abgelehnt werden soll. Dies geschieht unter Bezugnahme auf den von dem Server gespeicherten Leistungsnachweis, der aufzeichnet, wie schnell Client-Anfragen aktuell, d.h. in der jüngsten Vergangenheit, verarbeitet werden. Wie vorstehend beschrieben, ist vorgesehen, dass dies auf der Grundlage des Transaktionstyps, d.h. der Transaktions-ID, erfolgt, so dass der relevante Faktor der ist, wie schnell Client-Anfragen desselben Typs wie die Anfrage aktuell verarbeitet werden.
  • In Schritt S65r, der nach einer Ablehnungsentscheidung ausgeführt wird, stellt der Server eine Ablehnungsnachricht zusammen und übermittelt diese an den Client. Optional kann die Ablehnungsnachricht eine Zeitangabe enthalten, die angibt, wie lange die Verarbeitung der Anfrage voraussichtlich gedauert hätte, wenn sie angenommen worden wäre. Wenn zum Beispiel die Ziel-Reaktionszeit 3,5 Sekunden beträgt, wird die vorhergesagte Reaktionszeit länger als diese gewesen sein, um zu einer Ablehnung zu führen, z.B. 5,0 Sekunden, und es ist dieser letztere Wert, der in der Ablehnungsnachricht enthalten ist. Anschließend können weitere Client-Anfragen auf die gleiche Weise verarbeitet werden, wie durch den Rücklaufpfeil von Schritt S65r zu Schritt S62 angegeben ist.
  • In Schritt S65a, der nach einer Annahmeentscheidung ausgeführt wird, löscht der Server die Anfrage zur Verarbeitung in dem Transaktionsverarbeitungsbereich des Servers. Anschließend können weitere Client-Anfragen auf die gleiche Weise verarbeitet werden, wie durch den Rücklaufpfeil von Schritt S65a zu Schritt S62 angegeben ist.
  • Die Art und Weise, wie eingehende Anfragen überprüft und dann angenommen oder abgelehnt werden, geht mit dem Treffen einiger Konfigurationsentscheidungen in Bezug auf die Server-Warteschlange einher, in der die Client-Anfragen eingereiht werden, bevor sie von dem Transaktionsprozessor bearbeitet werden.
  • Eine Ausgestaltungsvariante besteht darin, dass die Verbindungsverwaltungseinheit als Türwächter für die Warteschlange dient, sodass Anfragen erst dann in die Warteschlange eingereiht werden, nachdem sie überprüft und angenommen wurden. Das heißt, die Verbindungsverwaltungseinheit ist in der Lage, den Zugang zu der Warteschlange so zu steuern, dass eingehende Client-Anfragen abhängig davon zu der Warteschlange hinzugefügt werden, dass sie angenommen werden, sodass abgelehnten Anfragen der Zugang zu der Warteschlange verwehrt wird. Auf diese Weise wird verhindert, dass Anfragen, die abgelehnt werden, Ressourcen der Warteschlange verbrauchen.
  • Eine andere Ausgestaltungsvariante besteht darin, dass die Verbindungsverwaltungseinheit ihre Überprüfung der Warteschlange so durchführt, dass alle Anfragen in die Warteschlange aufgenommen werden, aber erst dann die Warteschlange verlassen dürfen, nachdem sie durch die Verbindungsverwaltungseinheit geprüft und für die Transaktionsverarbeitung angenommen wurden. Das Überwachen von eingehenden Client-Anfragen durch die Verbindungsverwaltungseinheit geschieht nämlich durch Beobachten der Warteschlange, wobei abgelehnte Client-Anfragen aus der Warteschlange gelöscht werden. Dieser Ansatz ermöglicht es immer noch, dass schnelle Ablehnungen an Clients gesendet werden, während aber die Wahrscheinlichkeit vermieden wird, dass die Verbindungsverwaltungseinheit überlastet wird oder der Verbindungsverwaltungseinheit ihre eigene separate Warteschlange bereitgestellt werden muss.
  • 6B ist ein Ablaufplan der von dem Client aus 5B durchgeführten Verbindungsverwaltung.
  • In Schritt S66 baut der Client in Zusammenarbeit mit einem Server eine Client-Server-Verbindung zu diesem Server auf.
  • In Schritt S67 erzeugt der Client eine herkömmliche Anfrage.
  • In Schritt S68 fügt der Client der Anfrage eine Ziel-Reaktionszeit hinzu, die für den Server angibt, wie schnell eine Antwort gewünscht wird. (Die Schritte S67 und S68 könnten zu einer einzigen Aktion zusammengefasst werden).
  • In Schritt S69 wird die Anfrage an den Server auf der Client-Server-Verbindung übermittelt.
  • In Schritt S70 erhält der Client die Antwort des Servers auf der Client-Server-Verbindung.
  • Wenn in Schritt S71 die Antwort des Servers eine SERVER­_AUSGELASTET-Nachricht ist, d.h. eine Nachricht, welche die Client-Anfrage ablehnt, dann wird der Ablauf in Schritt S72 zu einer Bearbeitungslogik geleitet, die so konfiguriert ist, dass sie eine SERVER_AUSGELASTET-Antwort behandeln kann. Bei jeder anderen Art von Server-Antwort wird der Ablauf in Schritt S73 zu einer anderen Bearbeitungslogik geleitet, die so konfiguriert ist, dass sie ein normale Antwort, d.h. eine konkrete Antwort auf die Anfrage, behandeln kann.
  • Zum Umsetzen des vorgeschlagenen Verfahrens sei angemerkt, dass keine anderen Netzwerkressourcen wie zum Beispiel eine Arbeitslast-Verwaltungseinheit, die einen Lastausgleich durchführt, beteiligt sind. Trotzdem wird darauf hingewiesen, dass das vorgeschlagene Verfahren parallel zu einem derartigen Lastausgleich arbeiten kann.
  • Es wird darauf hingewiesen, dass Ausführungsformen der vorliegenden Offenbarung unter Verwendung von Cloud-Computing umgesetzt werden können. Insbesondere können eine(r) oder mehrere der Server und der Netzwerkressourcen in der Cloud gehostet werden.
  • Es sei von vornherein klargestellt, dass das Umsetzen der hierin angeführten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt ist, obwohl diese Offenbarung eine ausführliche Beschreibung von Cloud-Computing enthält. Stattdessen können Ausführungsformen der vorliegenden Offenbarung gemeinsam mit jeder beliebigen Art von jetzt bekannter oder später erfundener Datenverarbeitungsumgebung umgesetzt werden.
  • Cloud-Computing ist ein Servicebereitstellungsmodell zum Ermöglichen eines problemlosen bedarfsgesteuerten Netzwerkzugriffs auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Hauptspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste), die mit minimalem Verwaltungsaufwand bzw. minimaler Interaktion mit einem Anbieter des Service schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Eigenschaften enthalten, mindestens drei Dienstmodelle und mindestens vier Implementierungsmodelle.
  • Bei den Eigenschaften handelt es sich um die Folgenden:
    • On-Demand Self-Service: Ein Cloud-Nutzer kann einseitig automatisch nach Bedarf für Datenverarbeitungsfunktionen wie Serverzeit und Netzwerkspeicher sorgen, ohne dass eine menschliche Interaktion mit dem Anbieter der Dienste erforderlich ist.
  • Broad Network Access: Es sind Funktionen über ein Netzwerk verfügbar, auf die durch Standardmechanismen zugegriffen wird, welche die Verwendung durch heterogene Thin- oder Thick-Client-Plattformen (z.B. Mobiltelefone, Laptops und PDAs) unterstützen.
  • Resource-Pooling: Die Datenverarbeitungsressourcen des Anbieters werden zusammengeschlossen, um mehreren Nutzern unter Verwendung eines Multi-Tenant-Modells zu dienen, wobei verschiedene physische und virtuelle Ressourcen dynamisch nach Bedarf zugewiesen und neu zugewiesen werden. Es gibt eine gefühlte Standortunabhängigkeit, da der Nutzer allgemein keine Kontrolle bzw. Kenntnis über den genauen Standort der bereitgestellten Ressourcen hat, aber in der Lage sein kann, einen Standort auf einer höheren Abstraktionsebene festzulegen (z.B. Land, Staat oder Rechenzentrum).
  • Rapid Elasticity: Funktionen können für eine schnelle horizontale Skalierung (scale out) schnell und elastisch bereitgestellt werden, in einigen Fällen auch automatisch, und für ein schnelles Scale-in schnell freigegeben werden. Für den Nutzer erscheinen die für das Bereitstellen verfügbaren Funktionen häufig unbegrenzt und sie können jederzeit in jeder beliebigen Menge gekauft werden.
  • Measured Service: Cloud-Systeme steuern und optimieren die Verwendung von Ressourcen automatisch, indem sie eine Messfunktion auf einer gewissen Abstraktionsebene nutzen, die für die Art von Dienst geeignet ist (z.B. Speicher, Verarbeitung, Bandbreite sowie aktive Benutzerkonten). Der Ressourcen-Verbrauch kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Nutzer des verwendeten Dienstes Transparenz geschaffen wird.
  • Bei den Dienstmodellen handelt es sich um die Folgenden:
    • Software as a Service (SaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, die in einer Cloud-Infrastruktur laufenden Anwendungen des Anbieters zu verwenden. Die Anwendungen sind über eine Thin-Client-Schnittstelle wie einen Web-Browser (z.B. auf dem Web beruhende E-Mail) von verschiedenen Client-Einheiten her zugänglich. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter das Netzwerk, Server, Betriebssysteme, Speicher bzw. sogar einzelne Anwendungsfunktionen, mit der möglichen Ausnahme von eingeschränkten benutzerspezifischen Anwendungskonfigurationseinstellungen.
  • Platform as a Service (PaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, durch einen Nutzer erstellte bzw. erhaltene Anwendungen, die unter Verwendung von durch den Anbieter unterstützten Programmiersprachen und Tools erstellt wurden, in der Cloud-Infrastruktur einzusetzen. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter Netzwerke, Server, Betriebssysteme bzw. Speicher, hat aber die Kontrolle über die eingesetzten Anwendungen und möglicherweise über Konfigurationen des Application Hosting Environment.
  • Infrastructure as a Service (laaS): Die dem Nutzer bereitgestellte Funktion besteht darin, das Verarbeiten, Speicher, Netzwerke und andere grundlegende Datenverarbeitungsressourcen bereitzustellen, wobei der Nutzer in der Lage ist, beliebige Software einzusetzen und auszuführen, zu der Betriebssysteme und Anwendungen gehören können. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicher, eingesetzte Anwendungen und möglicherweise eine eingeschränkte Kontrolle über ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
  • Bei den Einsatzmodellen handelt es sich um die Folgenden:
    • Private Cloud: Die Cloud-Infrastruktur wird einzig und allein für eine Organisation betrieben.
    • Sie kann durch die Organisation oder einen Dritten verwaltet werden und kann sich in den eigenen Räumen oder in fremden Räumen befinden.
  • Community Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine spezielle Benutzergemeinschaft, die gemeinsame Angelegenheiten hat (z.B. Mission, Sicherheitsanforderungen, Richtlinien sowie Überlegungen bezüglich der Einhaltung von Vorschriften). Sie kann durch die Organisationen oder einen Dritten verwaltet werden und kann in den eigenen Räumen oder fremden Räumen stehen.
  • Public Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt und sie gehört einer Cloud-Dienste verkaufenden Organisation.
  • Hybrid Cloud: Die Cloud-Infrastruktur ist eine Zusammensetzung aus zwei oder mehreren Clouds (privat, Benutzergemeinschaft oder öffentlich), die zwar einzelne Einheiten bleiben, aber durch eine standardisierte oder proprietäre Technologie miteinander verbunden sind, die Daten- und Anwendungsportierbarkeit ermöglicht (z.B. Cloud-Zielgruppenverteilung für den Lastenausgleich zwischen Clouds).
  • Eine Cloud-Computing-Umgebung ist dienstorientiert mit Fokus auf Statusunabhängigkeit, geringer Kopplung, Modularität und semantischer Interoperabilität. Im Herzen von Cloud-Computing liegt eine Infrastruktur, die ein Netzwerk aus zusammengeschalteten Knoten aufweist.
  • Unter Bezugnahme auf 7 ist eine veranschaulichende Cloud-Computing-Umgebung 50 abgebildet. Wie gezeigt ist, weist die Cloud-Computing-Umgebung 50 einen oder mehrere Cloud-Computing-Knoten auf, mit denen von Cloud-Nutzern verwendete lokale Datenverarbeitungseinheiten wie der elektronische Assistent (PDA, personal digital assistant) oder das Mobiltelefon 54A, der Desktop-Computer 54B, der Laptop-Computer 54C und/oder das Automobil-Computer-System 54N Daten austauschen können. Die Knoten können miteinander Daten austauschen. Sie können physisch oder virtuell in ein oder mehrere Netzwerke wie private, Benutzergemeinschafts-, öffentliche oder hybride Clouds gruppiert werden (nicht gezeigt), wie vorstehend beschrieben wurde, oder in eine Kombination daraus. Dies ermöglicht es der Cloud-Computing-Umgebung 50, Infrastruktur, Plattformen und/oder Software als Dienst anzubieten, für die ein Cloud-Nutzer keine Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es sei darauf hingewiesen, dass die Arten der in 7 gezeigten Datenverarbeitungseinheiten 54A bis N lediglich veranschaulichend sein sollen und dass Datenverarbeitungsknoten und die Cloud-Computing-Umgebung 50 über eine beliebige Art Netzwerk und/oder über eine beliebige Art von über ein Netzwerk aufrufbarer Verbindung (z.B. unter Verwendung eines Web-Browsers) mit einer beliebigen Art von computergestützter Einheit Daten austauschen können.
  • Unter Bezugnahme auf 8 wird ein Satz von funktionalen Abstraktionsschichten gezeigt, die durch die Cloud-Computing-Umgebung 50 (7) bereitgestellt werden. Es sollte von vornherein klar sein, dass die in 8 gezeigten Komponenten, Schichten und Funktionen lediglich veranschaulichend sein sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie abgebildet ist, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
    • Eine Hardware- und Software-Schicht 60 enthält Hardware- und Software-Komponenten. Zu Beispielen für Hardware-Komponenten gehören: Mainframe-Computer 61; auf der RISC-(Reduced Instruction Set Computer) Architektur beruhende Server 62; Server 63; Blade-Server 64; Speichereinheiten 65; und Netzwerke sowie Netzwerkkomponenten 66. In einigen Ausführungsformen beinhalten Software-Komponenten eine Netzwerk-Anwendungsserver-Software 67 und eine Datenbank-Software 68.
  • Die Virtualisierungsschicht 70 stellt eine Abstraktionsschicht bereit, aus der die folgenden Beispiele für virtuelle Einheiten bereitgestellt werden können: virtuelle Server 71, virtueller Speicher 72, virtuelle Netzwerke 73, darunter virtuelle private Netzwerke, virtuelle Anwendungen und Betriebssysteme 74; und virtuelle Clients 75.
  • Man wird verstehen, dass jeder/jedes der in 1 und 2 gezeigten Server oder Server-Elemente physischen oder virtualisierten Komponenten in den Schichten 60 bzw. 70 entsprechen kann.
  • In einem Beispiel kann die Verwaltungsschicht 80 die nachfolgend beschriebenen Funktionen bereitstellen. Eine Ressourcen-Bereitstellung 81 stellt die dynamische Beschaffung von Datenverarbeitungsressourcen sowie anderen Ressourcen bereit, die zum Durchführen von Aufgaben innerhalb der Cloud-Computing-Umgebung verwendet werden. Ein Messen und eine Preisfindung 82 stellen die Kostenverfolgung beim Verwenden von Ressourcen innerhalb der Cloud-Computing-Umgebung sowie die Abrechnung oder Rechnungsstellung für den Verbrauch dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Anwendungs-Software-Lizenzen aufweisen. Die Sicherheit stellt die Identitätsüberprüfung für Cloud-Nutzer und Aufgaben sowie Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal 83 stellt Nutzern und Systemadministratoren den Zugang zu der Cloud-Computing-Umgebung bereit. Eine Verwaltung des Dienstumfangs 84 stellt die Zuordnung und Verwaltung von Cloud-Computing-Ressourcen bereit, so dass die benötigten Dienstziele erreicht werden. Ein Planen und Erfüllen von Vereinbarungen zum Dienstumfang (SLA, Service Level Agreement) 85 stellt die Anordnung vorab und die Beschaffung von Cloud-Computing-Ressourcen, für die eine zukünftige Anforderung vorausgesehen wird, gemäß einem SLA bereit.
  • Eine Arbeitslastschicht 90 stellt Beispiele für die Funktionalität bereit, für welche die Cloud-Computing-Umgebung verwendet werden kann. Zu Beispielen für Arbeitslasten und Funktionen, die von dieser Schicht bereitgestellt werden können, gehören: Abbildung und Navigation 91; Software-Entwicklung und Lebenszyklusverwaltung 92; Bereitstellung von Ausbildung in virtuellen Klassenzimmern 93; Datenanalytikverarbeitung 94; Transaktionsverarbeitung 95; und Server 10.
  • Dem Fachmann wird einleuchten, dass alle oder ein Teil der logischen Prozessschritte der bevorzugten Ausführungsform alternativ in einer Logikvorrichtung oder einer Vielzahl von Logikvorrichtungen ausgeführt werden können, die Logikelemente aufweisen, die so angeordnet sind, dass die logischen Prozessschritte des Verfahrens durchgeführt werden können, und dass derartige Logikelemente Hardware-Komponenten, Firmware-Komponenten oder eine Kombination dieser aufweisen können.
  • Dem Fachmann wird gleichermaßen einleuchten, dass alle oder ein Teil der Logikkomponenten der bevorzugten Ausführungsform alternativ in einer Logikvorrichtung ausgeführt werden können, die Logikelemente zum Durchführen der Schritte des Verfahrens aufweist, und dass derartige Logikelemente Komponenten wie Logikgatter zum Beispiel in einer programmierbaren Logikanordnung oder einer anwendungsspezifischen integrierten Schaltung aufweisen können. Derartige Logikanordnungen können darüber hinaus in Form von Aktivierungselementen zum vorübergehenden oder dauerhaften Herstellen von Logikstrukturen in einer derartigen Anordnung bzw. Schaltung ausgeführt werden, zum Beispiel unter Verwendung einer virtuellen Hardware-Beschreibungssprache, die unter Verwendung von festen oder übertragbaren Trägermedien gespeichert und übertragen werden kann.
  • In einer weiteren alternativen Ausführungsform kann die vorliegende Offenbarung in Form eines auf einem Computer ausgeführten Verfahrens zum Implementieren eines Dienstes realisiert werden, das Schritte zum Implementieren von Computerprogrammcode aufweist, der die Funktion besitzt, die Datenverarbeitungseinheit dazu zu veranlassen, sämtliche Schritte des Verfahrens durchzuführen, wenn er in einer Computerinfrastruktur implementiert und darin ausgeführt wird.
  • Man wird verstehen, dass das Verfahren und die Komponenten der bevorzugten Ausführungsform alternativ ganz oder teilweise in einem parallelen Datenverarbeitungssystem enthalten sein können, das zwei oder mehr Prozessoren zur Ausführung paralleler Software aufweist.
  • Eine weitere Ausführungsform der Offenbarung ist ein Computerprogrammprodukt, das in Form eines Systems und eines Verfahrens definiert ist. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) beinhalten, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Offenbarung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch ein System zur Ausführung von Anweisungen behalten und speichern kann.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) beinhalten, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch eine Einheit zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch kodierte Einheit wie zum Beispiel Lochkarten oder gehobene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. durch ein Glasfaserkabel geleitete Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Offenbarung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, im Feld programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Offenbarung durchzuführen.
  • Aspekte der vorliegenden Offenbarung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Offenbarung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder angegebenen Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Offenbarung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
  • Bei der vorliegenden Erfindung kann es sich um einen Client, einen Server, ein Computersystem, das Clients und Server aufweist, die über ein Netzwerk verbunden sind, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) beinhalten, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Einem Fachmann wird einleuchten, dass viele Verbesserungen und Abwandlungen an der oben beschriebenen beispielhaften Ausführungsform vorgenommen werden können, ohne von dem Umfang der vorliegenden Offenbarung abzuweichen.

Claims (20)

  1. Transaktionsverarbeitungsserver, der in der Lage ist, Client-Verbindungen zu verwalten, wobei der Server aufweist: einen Client-Server-Anschluss, der in der Lage ist, einzelne Client-Server-Verbindungen zu dem Server herzustellen, aufrechtzuerhalten und zu beenden, wobei jede Verbindung in der Lage ist, Client-Anfragen an den Server zu übermitteln; einen Transaktionsverarbeitungsbereich des Servers, der in der Lage ist, Client-Anfragen zu verarbeiten und Antworten auszugeben; eine Server-Leistungsverwaltungseinheit, die in der Lage ist, einen Leistungsnachweis darüber zu führen, wie schnell Client-Anfragen bearbeitet werden; und eine Verbindungsverwaltungseinheit, die in der Lage ist, eingehende Client-Anfragen zu überwachen und aus jeder Client-Anfrage eine Ziel-Reaktionszeit zu extrahieren, die den Transaktionsverarbeitungsserver darauf hinweist, die Client-Anfrage innerhalb der Ziel-Reaktionszeit zu verarbeiten und jede eingehende Client-Anfrage auf der Grundlage der Ziel-Reaktionszeit und unter Bezugnahme auf den Leistungsnachweis anzunehmen oder abzulehnen.
  2. Server nach Anspruch 1, wobei die Verbindungsverwaltungseinheit darüber hinaus in der Lage ist, Anfrageablehnungsnachrichten an Clients zu übermitteln, von denen abgelehnte Anfragen ausgegangen sind.
  3. Server nach Anspruch 2, wobei die Anfrageablehnungsnachrichten in Metadaten von Server-zu-Client-Datenpaketen eingefügt werden.
  4. Server nach Anspruch 2, wobei die Anfrageablehnungsnachrichten vorhergesagte Reaktionszeiten für das Verarbeiten der Anfrage enthalten, die unter Bezugnahme auf den Leistungsnachweis erhalten wurden.
  5. Server nach Anspruch 1, wobei die Ziel-Reaktionszeit in Metadaten in der Client-Anfrage enthalten ist.
  6. Server nach Anspruch 1, wobei die Anfragen einen Transaktionstyp aufweisen und der Leistungsnachweis Langzeitverarbeitungszeiten für Client-Anfragen auf der Grundlage des Transaktionstyps beinhaltet.
  7. Server nach Anspruch 1, wobei es sich bei jeder Verarbeitungszeit um eine durchschnittliche Zeit handelt, die sich aus relevanten Client-Anfragen zusammensetzt.
  8. Server nach Anspruch 1, wobei der Durchschnitt nach Aktualität gewichtet wird, wobei zuletzt bearbeitete Client-Anfragen eine höhere Gewichtung aufweisen.
  9. Server nach Anspruch 1, wobei eingehende Client-Anfragen auf der Grundlage eines Vergleichs der Ziel-Reaktionszeit mit einer für die zu beurteilende Client-Anfrage relevanten Langzeit-Reaktionszeit angenommen oder abgelehnt werden.
  10. Server nach Anspruch 1, wobei der Leistungsnachweis auf Client-Anfragen beruht, die innerhalb eines durch Zeit definierten Fensters verarbeitet werden.
  11. Server nach Anspruch 1, wobei der Leistungsnachweis auf mehreren Client-Anfragen eines Transaktionstyps innerhalb mehrerer vergangener Transaktionen beruht.
  12. Server nach Anspruch 1, wobei der Leistungsnachweis auf mehreren vergangenen Client-Anfragen beruht.
  13. Server nach Anspruch 1, darüber hinaus aufweisend: eine Warteschlange, in der Client-Anfragen für den Server eingereiht werden, wenn der Server aktuell keine Kapazität aufweist, um sie anzunehmen.
  14. Server nach Anspruch 13, wobei die Verbindungsverwaltungseinheit in der Lage ist, den Zugang zu der Warteschlange so zu steuern, dass eingehende Client-Anfragen abhängig davon zu der Warteschlange hinzugefügt werden, dass sie angenommen werden, sodass abgelehnten Anfragen der Zugang zu der Warteschlange verwehrt wird.
  15. Server nach Anspruch 13, wobei das Überwachen von eingehenden Client-Anfragen durch die Verbindungsverwaltungseinheit durch Beobachten der Warteschlange geschieht, wobei abgelehnte Client-Anfragen aus der Warteschlange gelöscht werden.
  16. Verfahren zum Verwalten von Client-Verbindungen zu einem Transaktionsverarbeitungsserver, wobei das Verfahren durch den Server durchgeführt wird und Folgendes aufweist: Empfangen einer Client-Anfrage von einem Client auf einer Client-Server-Verbindung; Extrahieren einer Ziel-Reaktionszeit aus der Client-Anfrage, die angibt, wie schnell der Client die Anfrage verarbeitet haben möchte; und Annehmen oder Ablehnen der Client-Anfrage auf der Grundlage der Ziel-Reaktionszeit und unter Bezugnahme auf einen Leistungsnachweis darüber, wie schnell Client-Anfragen verarbeitet werden, der von dem Server gepflegt wird.
  17. Verfahren nach Anspruch 16, darüber hinaus aufweisend: Übermitteln einer Ablehnungsnachricht an den Client, wenn die Anfrage abgelehnt wurde.
  18. Verfahren nach Anspruch 16, wobei die Client-Anfrage eine Typklassifizierung enthält, und der Anzeiger, der zum Annehmen bzw. Ablehnen der Anfrage verwendet wird, spezifisch für diesen Typ ist.
  19. Computerprogrammprodukt, aufweisend: ein durch einen Computer lesbares Speichermedium, auf dem Programmanweisungen enthalten sind, wobei das durch einen Computer lesbare Speichermedium nicht per se ein flüchtiges Signal ist, wobei die Programmanweisungen durch einen Prozessor ausführbar sind, um den Prozessor dazu zu veranlassen, ein Verfahren durchzuführen, das Folgendes aufweist: Empfangen einer Client-Anfrage an einem Transaktionsverarbeitungsserver auf einer Client-Server-Verbindung; Extrahieren einer Ziel-Reaktionszeit aus der Client-Anfrage, wobei die Ziel-Reaktionszeit den Transaktionsverarbeitungsserver darauf hinweist, die Client-Anfrage innerhalb der Ziel-Reaktionszeit zu verarbeiten; Annehmen oder Ablehnen der Client-Anfrage beruhend auf einem Vergleich der angeforderten Ziel-Reaktionszeit mit einem Leistungsnachweis über Ausführungszeiten für einen angeforderten Typ von Transaktionen auf dem Transaktionsverarbeitungsserver; und wobei der Transaktionsverarbeitungsserver beruhend darauf, dass der Vergleich angibt, die Client-Anfrage abzulehnen, eine geschätzte Dauer für das Erledigen der Client-Anfrage in einer Ablehnungsnachricht einschließt.
  20. Computerprogrammprodukt nach Anspruch 19, ferner aufweisend: Übermitteln einer Ablehnungsnachricht an den Client beruhend darauf, dass die Client-Anfrage von dem Transaktionsverarbeitungsserver abgelehnt wird, wobei die Client-Anfrage eine Typklassifizierung enthält, und ein Anzeiger, der zum Annehmen bzw. Ablehnen der Anfrage verwendet wird, spezifisch für diesen Typ ist, und wobei die Ablehnungsnachricht in einer kürzeren Zeit als die Ziel-Reaktionszeit übermittelt wird.
DE112018003482.8T 2017-08-25 2018-08-22 Serveranfrageverwaltung Active DE112018003482B4 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US15/686,397 US10834230B2 (en) 2017-08-25 2017-08-25 Server request management
US15/686,397 2017-08-25
US15/813,262 US10749983B2 (en) 2017-08-25 2017-11-15 Server request management
US15/813,262 2017-11-15
PCT/IB2018/056345 WO2019038684A1 (en) 2017-08-25 2018-08-22 SERVER REQUEST MANAGEMENT

Publications (2)

Publication Number Publication Date
DE112018003482T5 true DE112018003482T5 (de) 2020-04-09
DE112018003482B4 DE112018003482B4 (de) 2022-09-08

Family

ID=65435766

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112018003482.8T Active DE112018003482B4 (de) 2017-08-25 2018-08-22 Serveranfrageverwaltung

Country Status (6)

Country Link
US (2) US10834230B2 (de)
JP (1) JP7023348B2 (de)
CN (1) CN111052104B (de)
DE (1) DE112018003482B4 (de)
GB (1) GB2579330B (de)
WO (1) WO2019038684A1 (de)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110178352A (zh) * 2016-12-13 2019-08-27 Abb瑞士股份有限公司 利用拒绝已连接客户端以平衡系统的例程的多客户端/多服务器管理方法和系统
US10834230B2 (en) 2017-08-25 2020-11-10 International Business Machines Corporation Server request management
WO2020243652A1 (en) 2019-05-31 2020-12-03 Nike Innovate C.V. Multi-channel communication platform with dynamic response goals
CN110471749B (zh) * 2019-07-12 2023-04-25 平安普惠企业管理有限公司 任务处理方法、装置、计算机可读存储介质和计算机设备
CN112688982B (zh) * 2019-10-18 2024-04-16 北京京东振世信息技术有限公司 一种用户请求处理方法和装置
CN111737087B (zh) * 2020-06-30 2023-08-04 超越科技股份有限公司 身份信息显示方法及系统
CN111917617B (zh) * 2020-07-31 2022-03-29 宁波奥克斯电气股份有限公司 智能家电设备控制方法、装置、服务器及存储介质
CN111988187B (zh) * 2020-09-02 2022-07-26 北京亿安天下科技股份有限公司 中央管理服务器的互联网连接方法及装置
CN111897659B (zh) * 2020-09-29 2020-12-25 腾讯科技(深圳)有限公司 业务处理频率的控制方法、系统、装置、电子设备
US20220188271A1 (en) * 2020-12-10 2022-06-16 Microsoft Technology Licensing, Llc Framework for allowing complementary workloads/processes to bring in heavy load on a file collaboration platform
TWI760160B (zh) * 2021-03-26 2022-04-01 凌群電腦股份有限公司 降低伺服端運作壓力並提升回應時間之流量控制方法及其系統
US20230108553A1 (en) * 2021-10-05 2023-04-06 International Business Machines Corporation Handling a transaction request
US11983721B2 (en) * 2021-10-29 2024-05-14 Paypal, Inc. Computer software architecture for execution efficiency
CN115174296B (zh) * 2022-05-30 2024-03-22 青岛海尔科技有限公司 设备功能接入方法、装置、存储介质及电子装置

Family Cites Families (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07129510A (ja) * 1993-11-01 1995-05-19 Toshiba Corp コンピュータシステム
US5913028A (en) 1995-10-06 1999-06-15 Xpoint Technologies, Inc. Client/server data traffic delivery system and method
US6633914B1 (en) 1998-08-05 2003-10-14 International Business Machines Corporation Systems, methods and computer program products for handling client requests for server application processing using a thread pool
US6418464B1 (en) 1998-09-25 2002-07-09 Apple Compunter, Inc. Method and apparatus for coordination of client/server processes
CA2293062A1 (en) * 1999-12-22 2001-06-22 Ibm Canada Limited-Ibm Canada Limitee Efficient use of domain socket pairs in communication for tightly coupled transactions
US6922685B2 (en) 2000-05-22 2005-07-26 Mci, Inc. Method and system for managing partitioned data resources
US6996631B1 (en) * 2000-08-17 2006-02-07 International Business Machines Corporation System having a single IP address associated with communication protocol stacks in a cluster of processing systems
US7254228B2 (en) * 2000-09-28 2007-08-07 Eci Telecom Ltd. Method and system for effective utilizing the switching capacity of local exchanges
US7062567B2 (en) * 2000-11-06 2006-06-13 Endeavors Technology, Inc. Intelligent network streaming and execution system for conventionally coded applications
US8831995B2 (en) * 2000-11-06 2014-09-09 Numecent Holdings, Inc. Optimized server for streamed applications
US7185094B2 (en) 2001-03-30 2007-02-27 Sandcherry, Inc. Media session framework using a control module to direct and manage application and service servers
US20020152307A1 (en) * 2001-04-12 2002-10-17 Doyle Ronald Patrick Methods, systems and computer program products for distribution of requests based on application layer information
US7315892B2 (en) * 2001-06-27 2008-01-01 International Business Machines Corporation In-kernel content-aware service differentiation
US6912715B2 (en) * 2001-07-30 2005-06-28 Appeon Corporation System and method for web-based remote procedure call (RPC)
US20030055969A1 (en) * 2001-09-17 2003-03-20 International Business Machines Corporation System and method for performing power management on a distributed system
JP4469535B2 (ja) * 2002-01-10 2010-05-26 富士通株式会社 情報処理システム、情報処理装置並びにアクセス分散方法
US20030229695A1 (en) * 2002-03-21 2003-12-11 Mc Bride Edmund Joseph System for use in determining network operational characteristics
US7171479B2 (en) 2002-04-26 2007-01-30 International Business Machines Corporation Efficient delivery of boot code images from a network server
US8082339B2 (en) 2003-02-28 2011-12-20 Hewlett-Packard Development Company, L.P. Electronic device network having graceful denial of service
US7567504B2 (en) * 2003-06-30 2009-07-28 Microsoft Corporation Network load balancing with traffic routing
US7698457B2 (en) 2003-11-12 2010-04-13 Andrei Ghetie Scalable and dynamic quality of service control
JP2005184165A (ja) 2003-12-17 2005-07-07 Hitachi Ltd トラフィック制御装置およびそれを用いたサービスシステム
US7610377B2 (en) * 2004-01-27 2009-10-27 Sun Microsystems, Inc. Overload management in an application-based server
JP2006031063A (ja) 2004-07-12 2006-02-02 Hitachi Ltd 優先制御装置
JP2006319841A (ja) * 2005-05-16 2006-11-24 Funai Electric Co Ltd サーバ装置及びクライアント・サーバシステム
US7925769B2 (en) * 2005-11-23 2011-04-12 International Business Machines Corporation Media flow converter for use in real-time delivery transactions
US8145719B2 (en) 2006-03-03 2012-03-27 Gogroups Method and system for messaging and communication based on groups
US7647454B2 (en) * 2006-06-12 2010-01-12 Hewlett-Packard Development Company, L.P. Transactional shared memory system and method of control
US8832286B2 (en) * 2007-11-12 2014-09-09 International Business Machines Corporation Method and system for controlling client access to a server application
US7979497B2 (en) * 2008-01-25 2011-07-12 International Business Machines Corporation Message delivery using a plurality of queue managers
US9071608B2 (en) 2008-04-28 2015-06-30 International Business Machines Corporation Method and apparatus for load balancing in network based telephony application
US7797415B2 (en) 2008-04-29 2010-09-14 Computer Associates Think, Inc. Automatic context-based baselining for transactions
US8527635B2 (en) * 2008-08-13 2013-09-03 Sk Planet Co., Ltd. Contents delivery system and method, web server and contents provider DNS server thereof
US8135850B2 (en) 2008-11-25 2012-03-13 Citrix Systems, Inc. Systems and methods for load balancing real time streaming
US20120066501A1 (en) 2009-03-17 2012-03-15 Chuyu Xiong Multi-factor and multi-channel id authentication and transaction control
US8699343B2 (en) * 2009-04-27 2014-04-15 Sonus Networks, Inc. Adaptive rate control based on overload signals
US8103781B1 (en) 2009-05-01 2012-01-24 Google Inc. Mechanism for handling persistent requests from stateless clients
EP2441219B1 (de) * 2009-06-09 2013-03-13 Telefonaktiebolaget L M Ericsson (publ) Energiesparfunktionalität in kommunikationsnetzwerken
KR101674903B1 (ko) 2009-10-20 2016-11-11 삼성전자주식회사 개인 네트워크를 이용한 서비스 제공 방법 및 장치
US8200812B2 (en) * 2009-12-31 2012-06-12 International Business Machines Corporation Reducing workload on a backend system using client side request throttling
US8996611B2 (en) * 2011-01-31 2015-03-31 Microsoft Technology Licensing, Llc Parallel serialization of request processing
US8176357B2 (en) 2010-05-28 2012-05-08 Eastman Kodak Company System for handling storage system requests
US8762775B2 (en) 2010-05-28 2014-06-24 Intellectual Ventures Fund 83 Llc Efficient method for handling storage system requests
US8682310B2 (en) * 2010-05-28 2014-03-25 Telefonaktiebolaget L M Ericsson (Publ) Network-based area positioning for capacity and coverage improvement
US8892632B2 (en) 2010-06-04 2014-11-18 Microsoft Corporation Client-server interaction frequency control
EP2395710B1 (de) * 2010-06-08 2013-11-06 Alcatel Lucent Vorrichtung und Verfahren zum Datenlastverteilung
US8832061B2 (en) * 2010-07-02 2014-09-09 Salesforce.Com, Inc. Optimizing data synchronization between mobile clients and database systems
JP5582344B2 (ja) * 2010-08-09 2014-09-03 日本電気株式会社 接続管理システム、及びシンクライアントシステムにおける接続管理サーバの連携方法
US8645545B2 (en) 2010-11-24 2014-02-04 International Business Machines Corporation Balancing the loads of servers in a server farm based on an angle between two vectors
US9602414B2 (en) 2011-02-09 2017-03-21 Time Warner Cable Enterprises Llc Apparatus and methods for controlled bandwidth reclamation
CN103392329B (zh) * 2011-02-26 2016-11-16 英国电讯有限公司 服务会话资源管理
US8849900B2 (en) 2011-03-04 2014-09-30 Telcordia Technologies, Inc. Method and system supporting mobile coalitions
US9654601B2 (en) * 2011-03-14 2017-05-16 Verizon Digital Media Services Inc. Network connection hand-off and hand-back
JPWO2012127799A1 (ja) * 2011-03-23 2014-07-24 パナソニック株式会社 通信サーバ、通信方法、記録媒体、および、集積回路
JP5570030B2 (ja) * 2011-03-29 2014-08-13 Kddi株式会社 サービス要求受付制御方法、装置およびシステム
US20130080635A1 (en) * 2011-09-23 2013-03-28 Loyal3 Holdings, Inc. Massively Scalable Electronic Gating System
US9285859B2 (en) 2011-12-29 2016-03-15 Khalifa University of Science, Technology, and Research British Telecommunications PLC Method and system for determining allocation of clients to servers
CN104137505B (zh) * 2011-12-29 2017-12-05 皇家Kpn公司 实现对分段内容流式传输的网络发起的控制的方法和装置
GB2506930A (en) 2012-10-15 2014-04-16 Ibm Improved request-response operation for asynchronous messaging
US10263916B2 (en) 2012-12-03 2019-04-16 Hewlett Packard Enterprise Development Lp System and method for message handling in a network device
CN103067359A (zh) 2012-12-14 2013-04-24 北京思特奇信息技术股份有限公司 一种基于连接复用的提高服务器并发处理能力的系统及方法
JP6172649B2 (ja) * 2012-12-19 2017-08-02 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 情報処理装置、プログラム、及び、情報処理方法
JP6106494B2 (ja) 2013-03-29 2017-03-29 株式会社東芝 通信制御装置、サーバ装置、通信システム及びプログラム
US9432269B2 (en) 2013-04-06 2016-08-30 Citrix Systems, Inc. Systems and methods for exporting application details using appflow
US10038626B2 (en) 2013-04-16 2018-07-31 Amazon Technologies, Inc. Multipath routing in a distributed load balancer
US10069903B2 (en) 2013-04-16 2018-09-04 Amazon Technologies, Inc. Distributed load balancer
US10362145B2 (en) * 2013-07-05 2019-07-23 The Boeing Company Server system for providing current data and past data to clients
US20150019686A1 (en) * 2013-07-12 2015-01-15 Seven Networks, Inc. Distributed caching systems with configurable extended caching optimization
US9870349B2 (en) 2013-09-20 2018-01-16 Yottaa Inc. Systems and methods for managing loading priority or sequencing of fragments of a web object
US10104166B2 (en) * 2014-05-20 2018-10-16 Citrix Systems, Inc. Systems and methods for providing load balancing as a service
EP3037965A1 (de) 2014-12-22 2016-06-29 Oberthur Technologies Client-Server-Kommunikation
US11057446B2 (en) 2015-05-14 2021-07-06 Bright Data Ltd. System and method for streaming content from multiple servers
CN106301883B (zh) * 2015-06-26 2019-09-03 精工爱普生株式会社 网络系统、以及网络系统的控制方法
CN105897836A (zh) * 2015-12-07 2016-08-24 乐视云计算有限公司 一种回源请求处理方法及装置
CN106940656A (zh) * 2016-01-04 2017-07-11 阿里巴巴集团控股有限公司 一种任务调度方法及装置
US10834230B2 (en) 2017-08-25 2020-11-10 International Business Machines Corporation Server request management

Also Published As

Publication number Publication date
JP7023348B2 (ja) 2022-02-21
GB2579330A (en) 2020-06-17
CN111052104A (zh) 2020-04-21
CN111052104B (zh) 2023-12-19
US10749983B2 (en) 2020-08-18
WO2019038684A1 (en) 2019-02-28
GB202003654D0 (en) 2020-04-29
DE112018003482B4 (de) 2022-09-08
GB2579330B (en) 2020-11-11
US20190068751A1 (en) 2019-02-28
US10834230B2 (en) 2020-11-10
JP2020531956A (ja) 2020-11-05
US20190068752A1 (en) 2019-02-28

Similar Documents

Publication Publication Date Title
DE112018003482B4 (de) Serveranfrageverwaltung
DE112016006080B4 (de) Verwaltung von virtuellen desktopinstanzenpools
DE102016103733B4 (de) Kanaleigentum in einem Veröffentlichungs-/Abonnier-System
DE112016003726B4 (de) Dynamisch definierte virtuelle private Netzwerktunnel in hybriden Cloud-Umgebungen
DE60301202T2 (de) Verfahren und vorrichtung zur verkehrssteuerung einer web-farm
DE60029879T2 (de) System zur mehrschichtigen Bereitstellung in Computernetzwerken
DE102016222048A1 (de) Dynamisch definierte virtuelle private netzwerktunnel in hybriden cloud-umgebungen
DE112018004349T5 (de) Dynamische auswahl von bereitstellungskonfigurationen von softwareanwendungen
DE112016001657T5 (de) Multi-Tenant-Sensitiver DHCP-Mechanismus für Cloud-Netzwerke
DE112008003966T5 (de) Selektives Um-Abbilden einer Netzwerktopologie
DE102011016866A1 (de) One-to-one metching in a contact center
DE102011016865A1 (de) View and metrics for a queueless contact center
DE102011016862A1 (de) Warteschlangenlose Hochleistungskontaktzentrale
DE102017122738A1 (de) Virtueller Router mit dynamischer Flussauslagerungsfähigkeit
DE112011103081T5 (de) Client/Abonnenten-Verlagerung für die Server-Hochverfügbarkeit
DE112019000421B4 (de) Arbeitslastverwaltung mit datenzugriffserkennung in einem datenverarbeitungscluster
DE10297645B4 (de) Verfahren und Einrichtung zum Lastteilen und zur Datenverteilung in Servern
DE112020004651B4 (de) Multi-tenant-etl-ressourcenaufteilung
DE102011016856A1 (de) Automated mechanism for populating and maintaining data structures in an queueless contact center
DE112017006993T5 (de) System und Verfahren zum Erfassen einer Netztopologie
DE102021125182A1 (de) Gemeinsam genutzte unternehmenscloud
DE112021002487T5 (de) Teilen einer geografisch konzentrierten arbeitslast zwischen benachbarten mec-hosts mehrerer netzbetreiber
DE602005001550T2 (de) Verfahren und vorrichtung zur unterstützung von transaktionen
DE112018004415B4 (de) Optimierung von cloud-ressourcen bei operationen in mehrstufigem speicher auf richtliniengrundlage
DE112021004695T5 (de) Umgang mit zurückstellbaren netzwerkanforderungen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R084 Declaration of willingness to licence