DE112011100739T5 - Programmatisches Ermitteln eines Ausführungsmodus für eine Anforderungszuteilungunter Verwendung von historischen Masszahlen - Google Patents

Programmatisches Ermitteln eines Ausführungsmodus für eine Anforderungszuteilungunter Verwendung von historischen Masszahlen Download PDF

Info

Publication number
DE112011100739T5
DE112011100739T5 DE112011100739T DE112011100739T DE112011100739T5 DE 112011100739 T5 DE112011100739 T5 DE 112011100739T5 DE 112011100739 T DE112011100739 T DE 112011100739T DE 112011100739 T DE112011100739 T DE 112011100739T DE 112011100739 T5 DE112011100739 T5 DE 112011100739T5
Authority
DE
Germany
Prior art keywords
execution mode
request
execution
executable code
request arbitration
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
DE112011100739T
Other languages
English (en)
Other versions
DE112011100739T8 (de
Inventor
Curtiss James Howard
Stephen Joseph Kenna
Seth Robert Peterson
Maxim Avery Moldenhauer
Michael Ernest Concini
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 DE112011100739T5 publication Critical patent/DE112011100739T5/de
Application granted granted Critical
Publication of DE112011100739T8 publication Critical patent/DE112011100739T8/de
Active legal-status Critical Current

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/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/41Flow control; Congestion control by acting on aggregated flows or links
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/78Architectures of resource allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Ein Anforderungszuteiler kann automatisch zwischen Zuteilungen von Verarbeitungsanforderungen (z. B. ”include()”) in einem synchronen Modus und in einem asynchronen Modus hin- und herschalten. Jeder Zuteilung können ein eindeutiger Kennwert wie zum Beispiel eine Prozess-ID oder ein Uniform Resource Identifier (URI), historische Maßzahlen und ein Regelsatz zugeordnet werden. Bei jeder Ausführung der Anforderungszuteilung können historische Maßzahlen erfasst werden. Zu den Maßzahlen können, ohne auf diese beschränkt zu sein, die Ausführungsdauer und/oder die Ausführungshäufigkeit, die Auslastung des Prozessors, die Speicherbelegung, die Eingabe/Ausgabe in das beziehungsweise aus dem Netzwerk, die Anzahl der abhängigen Zuteilungen und dergleichen gehören. Unter Verwendung von historischen Maßzahlen können Regeln aufgestellt werden, um zu ermitteln, in welchem Modus die spätere Ausführung der Zuteilung stattfinden soll. Als solches kann die Optimierung der Laufzeit von Web-Anwendungen weiter verbessert werden.

Description

  • BEREICH DER ERFINDUNG
  • Die Beschreibung bezieht sich auf den Bereich der Middleware und insbesondere auf das programmatische Ermitteln eines Ausführungsmodus für eine Anforderungszuteilung unter Verwendung von historischen Maßzahlen.
  • DER ERFINDUNG ZUGRUNDE LIEGENDER ALLGEMEINER STAND DER TECHNIK
  • Wenn ein Anwendungsserver ausführbaren Code verarbeitet wie zum Beispiel eine Web-Anwendung (z. B. ein JAVA-Servlet oder eine JAVA SERVER PAGE) können in der Web-Anwendung ein oder mehrere Anforderungszuteilungen vorhanden sein. Diese Anforderungszuteilungen sind üblicherweise durch einen Funktionsaufruf ”include()” gekennzeichnet, der eine auszuführende Ressource wie zum Beispiel ein anderes Servlet oder eine Java-Serverseite (JAVA SERVER PAGE (JSP)) angibt. Die angegebene Ressource kann in einer von zwei Betriebsarten, asynchron oder synchron, ausgeführt werden. Die synchrone Ausführung führt oft dazu, dass der ausführbare Code blockiert (z. B. vorübergehend gesperrt wird), bis die Ausführung der angegebenen Ressource abgeschlossen ist, eine Situation, die in vielen Fällen ungünstig ist. Überdies kann die Ressource zusätzliche Anforderungszuteilungen enthalten, die andere Ressourcen ausführen können, was eine Ausführungskette zur Folge hat, die oftmals eine beträchtliche Latenzzeit in die Web-Anwendung einführt. Als Folge dieser Latenzzeit können somit mehrere Nachteile entstehen, zu denen nichtreagierende Anwendungen und/oder eine übermäßige Serverauslastung gehören können.
  • Eine Lösung zur Überwindung dieser Nachteile besteht in der Verwendung eines asynchronen Ausführungsmodus für die angegebene Ressource. Die asynchrone Ausführung ist jedoch mit einem Zusatzaufwand verbunden, beispielsweise der Bildung eines neuen Thread, der Platzierung von Markern in der Ausgabe und dem Austausch von Markern für eine server- oder clientseitige Aggregierung. In vielen Fällen kann dieser Zusatzaufwand die Latenzzeit noch vergrößern, was eine beträchtliche Verringerung der Leistungsgewinne, die die asynchrone Ausführung bietet, zur Folge haben kann. Die synchrone Ausführung einer Ressource kann zum Beispiel zu einer Latenzzeit von 10 ms führen, während die asynchrone Ausführung derselben Ressource aufgrund des von der asynchronen Ausführung eingeführten Zusatzaufwands (z. B. Kosten für die Einrichtung eines Thread) zu einer Latenzzeit von 20 ms führen kann.
  • Außerdem können die synchrone und die asynchrone Ausführung von Ressourcen in dynamischen Server-Umgebungen aufgrund von Änderungen bei der Verfügbarkeit der Ressourcen zu unterschiedlichen Ergebnissen führen. Da Web-Anwendungen gemeinhin in diesen Umgebungen eingesetzt werden, unterliegen die Web-Anwendungen Leistungsschwankungen. Um diese Probleme anzugehen, stellen Entwickler von Web-Anwendungen oftmals Vermutungen darüber an, welcher Ausführungsmodus die besten Ergebnisse hinsichtlich der Leistungsfähigkeit erzielen kann. Häufig haben diese Vermutungen nicht die optimalste Leistungsfähigkeit der Anwendung zum Ergebnis. Somit können viele Server-Umgebungen, die Web-Anwendungen ausführen, unter einer ineffizienten Nutzung der Ressourcen und einem beeinträchtigten Leistungsvermögen des Servers leiden -Faktoren, die eine Informationstechnologie-(IT-)Infrastruktur in unangemessener Weise belasten können.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Eine Ausführungsform der Beschreibung beinhaltet ein Verfahren zum Zuteilen einer Anforderung. Bei dem Verfahren kann eine Anforderungszuteilung, die in einem ersten ausführbaren Code während der Ausführungszeit ausgeführt werden soll, gekennzeichnet werden. Der Anforderungszuteilung kann ein eindeutiger Kennwert zugeordnet werden. Der eindeutige Kennwert der Anforderungszuteilung kann einen zweiten ausführbaren Code, der ausgeführt werden soll, kennzeichnen. Der erste und der zweite ausführbare Code können sich in einer Komponente eines Web-Behälters (Web container) befinden. Der Web-Behälter kann beliebige einer Vielfalt von Technologien nutzen, welche die Einbindung von Ressourcen gestatten. Beispielsweise kann der Web-Behälter einer Laufzeitumgebung wie zum Beispiel einer Laufzeitumgebung vom Typ J2EE zugeordnet werden. Vor der Ausführung des zweiten ausführbaren Codes kann ein Ausführungsmodus für den zweiten ausführbaren Code ermittelt werden. Diese Ermittlung kann die Auswertung von mindestens einer Leistungsmaßzahl oder aber einem Schwellwert beinhalten. Der Schwellwert kann mindestens ein von einem Benutzer festgelegter Wert oder aber ein programmatisch festgelegter Wert sein. Bei dem Ausführungsmodus kann es sich um einen asynchronen Ausführungsmodus oder um einen synchronen Ausführungsmodus handeln. Als Reaktion auf die Ermittlung des Ausführungsmodus kann die Anforderungszuteilung auf der Grundlage der Verwendung des ermittelten Ausführungsmodus ausgeführt werden. Der synchrone Ausführungsmodus kann dazu führen, dass der erste ausführbare Code ausgeführt wird und die Ausführung abschließt, bevor die Ausführung des zweiten ausführbaren Codes beginnt. Der asynchrone Ausführungsmodus kann dazu führen, dass der erste und der zweite ausführbare Code gleichzeitig ausgeführt werden.
  • Eine weitere Ausführungsform der Beschreibung kann ein System zum Zuteilen einer Anforderung einschließen. Das System kann eine Zuteilungs-Steuerkomponente enthalten, die eine Anforderungszuteilung, die einem ersten ausführbaren Code zugeordnet ist, kennzeichnen und ausführen kann. Die Zuteilungs-Steuerkomponente kann eine Komponente einer Transportkanalkette in einer Laufzeitumgebung sein. Die Transportkanalkette kann einer Transportschicht eines Open-System-Interconnect-(OSI-)Schichtenmodells zugeordnet sein. Bei der Laufzeitumgebung kann es sich um eine beliebige Umgebung handeln, welche die Einbindung von Ressourcen unterstützt. Zum Beispiel und in einer Ausführungsform kann die Laufzeitumgebung eine Laufzeitumgebung vom Typ JAVA 2 ENTERPRISE EDITION (J2EE) sein. Das System kann auch eine Anforderungszuteilung, die dem ersten ausführbaren Code zugeordnet ist, einschließen. Der Anforderungszuteilung kann ein eindeutiger Kennwert zugeordnet werden. Der eindeutige Kennwert kann eine eindeutige Ressource, die ausgeführt werden soll, kennzeichnen. Die Anforderungszuteilung kann die Ausführung der eindeutigen Ressource auslösen. Die eindeutige Ressource kann einen zweiten ausführbaren Code enthalten. Das System kann auch mindestens eine Leistungsmaßzahl enthalten, die der Anforderungszuteilung zugeordnet ist. Die Leistungsmaßzahl kann während der Ausführung der Anforderungszuteilung automatisch erfasst werden. Die Leistungsmaßzahl kann verwendet werden, um das Ausführungsverhalten der Anforderungszuteilung zu verändern. Ein Regelsatz kann vorhanden sein, der so konfiguriert ist, dass er mindestens eines von Folgendem, einen Schwellwert, einen Ausführungsmodus oder eine Ereignisbehandlungsroutine, die der Anforderungszuteilung zugeordnet ist, festlegt. Der Schwellwert kann eine von einem Benutzer festgelegte Einstellung oder ein automatisch ermittelter Wert sein. Bei dem Ausführungsmodus kann es sich um einen synchronen Ausführungsmodus oder um einen asynchronen Ausführungsmodus handeln. Der synchrone Ausführungsmodus kann dazu führen, dass der erste ausführbare Code in Folge mit dem zweiten ausführbaren Code ausgeführt wird, wobei der zweite ausführbare Code erst ausgeführt werden darf, wenn der erste ausführbare Code seine Ausführung abgeschlossen hat. Der asynchrone Ausführungsmodus kann dazu führen, dass der erste und der zweite ausführbare Code gleichzeitig ausgeführt werden.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Bevorzugte Ausführungsformen der vorliegenden Erfindung werden nun lediglich beispielhaft und mit Bezug auf die folgenden Zeichnungen beschrieben, bei denen:
  • 1 ein Ablaufplan ist, der ein Verfahren veranschaulicht, welches einen Ausführungsmodus für eine Anforderungszuteilung unter Verwendung von historischen Maßzahlen gemäß einer Ausführungsform von erfindungsgemäßen Anordnungen, die hier beschrieben werden, programmatisch ermittelt;
  • 2 ein Blockschaubild ist, das ein Segment eines ausführbaren Codes und ein Übertragungsmodell darstellt, um einen Ausführungsmodus für eine Anforderungszuteilung unter Verwendung von historischen Maßzahlen gemäß einer Ausführungsform von erfindungsgemäßen Anordnungen, die hier offengelegt werden, programmatisch zu ermitteln;
  • 3 ein Blockschaubild ist, das ein System darstellt, um einen Ausführungsmodus für eine Anforderungszuteilung unter Verwendung von historischen Maßzahlen gemäß einer Ausführungsform von erfindungsgemäßen Anordnungen, die hier offengelegt werden, programmatisch zu ermitteln; und
  • 4 ein Blockschaubild ist, das einen Satz von Schnittstellen darstellt, um einen Ausführungsmodus für eine Anforderungszuteilung unter Verwendung von historischen Maßzahlen gemäß einer Ausführungsform von erfindungsgemäßen Anordnungen, die hier beschrieben werden, programmatisch zu ermitteln.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die Beschreibung sieht eine Lösung vor, um einen Ausführungsmodus für eine Anforderungszuteilung während der Laufzeit unter Verwendung von historischen Maßzahlen programmatisch zu ermitteln. Das heißt, ein Anforderungszuteiler kann automatisch und auf intelligente Weise zwischen Zuteilungen von Verarbeitungsanforderungen (z. B. ”include()”) in einem synchronen Modus und in einem asynchronen Modus hin- und her-schalten. Jeder Anforderungszuteilung können ein eindeutiger Kennwert wie zum Beispiel eine Prozess-Kennung (Prozess-ID) oder ein einheitlicher Bezeichner für Ressourcen (Uniform Resource Identifier (URI)), historische Maßzahlen und ein Regelsatz zugeordnet werden. Bei jeder Ausführung der Anforderungszuteilung können historische Maßzahlen erfasst werden. Zu den Maßzahlen können, ohne auf diese beschränkt zu sein, die Ausführungsdauer und/oder die Ausführungshäufigkeit, die Auslastung des Prozessors, die Speicherbelegung, die Eingabe/Ausgabe in das beziehungsweise aus dem Netzwerk, die Anzahl der abhängigen Anforderungszuteilungen und dergleichen gehören. Unter Verwendung von historischen Maßzahlen können Regeln aufgestellt werden, um zu ermitteln, in welchem Modus die spätere Ausführung der Anforderungszuteilung stattfinden soll. Wenn die Dauer der synchronen Ausführung (z. B. 100 ms) einer Anforderungszuteilung zum Beispiel eine von dem Benutzer angegebene Dauer (z. B. 50 ms) übersteigt, kann die spätere Ausführung der Anforderungszuteilung im asynchronen Modus ausgeführt werden. Bei den Regeln, die zu der Anforderungszuteilung gehören, kann es sich um eine oder mehrere beliebig komplexe Regeln zur Ermittlung eines geeigneten Ausführungsmodus handeln. Als solches kann die Optimierung der Laufzeit von Web-Anwendungen weiter verbessert werden.
  • Der Fachmann wird als vorteilhaft erkennen, dass die vorliegende Erfindung als ein System, ein Verfahren oder ein Computerprogrammprodukt realisiert werden kann. Folglich kann die vorliegende Erfindung die Form einer ganz in Hardware realisierten Ausführung, einer ganz in Software realisierten Ausführung (darunter Firmware, residente Software, Mikrocode usw.) oder einer Ausführung annehmen, die Software- und Hardware-Erscheinungsformen kombiniert, die hier alle allgemein als eine ”Schaltung”, ein ”Modul” oder ein ”System” bezeichnet werden können. Überdies kann die vorliegende Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren beliebigen physisch greifbaren Ausdrucksmedien realisiert werden kann, wobei sich in dem Medium ein von einem Computer nutzbarer Programmcode befindet.
  • Jede beliebige Kombination aus einem oder mehreren von einem Computer nutzbaren oder computerlesbaren Medien kann verwendet werden. Das von einem Computer nutzbare oder computerlesbare Medium kann zum Beispiel, ohne auf diese beschränkt zu sein, ein(e) elektronische(s), magnetische(s), optische(s), elektromagnetische(s), Infrarot- oder Halbleitersystem, -vorrichtung oder -einheit sein. Zu konkreteren Beispielen (wobei die Liste keinen Anspruch auf Vollständigkeit erhebt) für das computerlesbare Medium würden folgende gehören: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine Diskette eines tragbaren Computers, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Compact-Disk-Nur-Lese-Speicher (CDROM), eine optische Speichereinheit oder eine magnetische Speichereinheit.
  • Das computerlesbare Medium kann ein nicht flüchtiges Speichermedium sein, in dem Daten in einer digital codierten Form gespeichert werden. Das computerlesbare Medium kann ein physisches, greifbares Speichermedium sein, das Informationen speichern kann, welche von einer Datenverarbeitungsvorrichtung entnommen werden können, um den Dateninhalt zu erhalten, der auf dem Speichermedium gespeichert wurde.
  • Computerprogrammcode zur Durchführung von Operationen der vorliegenden Erfindung kann in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen darunter eine objektorientierte Programmiersprache wie beispielsweise JAVA, Smalltalk, C++ oder dergleichen, sowie in herkömmlichen prozeduralen Programmiersprachen wie beispielsweise der Programmiersprache ”C” oder in ähnlichen Programmiersprachen geschrieben sein. Die Ausführung des Programmcodes 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 erfolgen. Im letzteren Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über jede beliebige Art eines Netzwerks, darunter ein lokales Netzwerks (LAN) oder ein Weitverkehrsnetz (WAN), verbunden werden oder die Verbindung kann über einen externen Computer (zum Beispiel über das Internet mittels eines Internet-Diensteanbieters) vorgenommen werden.
  • Die vorliegende Erfindung wird nachstehend mit Bezug auf Darstellungen in Ablaufplänen und/oder Blockschaubildern von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Darstellungen in den Ablaufplänen und/oder der Blockschaubildern sowie Kombinationen aus Blöcken in den Darstellungen der Ablaufpläne und/oder den Blockschaubildern mittels Computerprogrammbefehlen realisiert werden können. Diese Computerprogrammbefehle können einem Prozessor eines Universalcomputer, eines Computer für spezielle Anwendungen oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die Befehle, die über den Prozessor des Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel zur Ausführung der Funktionen/Vorgänge erzeugen, die in dem Ablaufplan und/oder dem Block oder den Blöcken des Blockschaubilds angegeben sind.
  • Diese Computerprogrammbefehle können auch in einem computerlesbaren Medium gespeichert werden, das einen Computer oder eine andere programmierbare Datenverarbeitungsvorrichtung anweisen kann, auf eine bestimmte Art und Weise zu funktionieren, so dass die in dem computerlesbaren Medium gespeicherten Befehle einen Herstellungsgegenstand erzeugen, der Befehlsmittel enthält, die die Funktion/den Vorgang ausführen, welche beziehungsweise welcher in dem Ablaufplan und/oder dem Block oder den Blöcken des Blockschaubilds angegeben ist.
  • Die Computerprogrammbefehle können auch auf einen Computer oder eine andere programmierbare Datenverarbeitungsvorrichtung geladen werden, um die Durchführung einer Reihe von Betriebsschritten auf dem Computer oder einer anderen programmierbaren Vorrichtung zu bewirken, um einen von einem Computer ausgeführten Prozess zu erzeugen, so dass die Befehle, die auf dem Computer oder einer anderen programmierbaren Vorrichtung ausgeführt werden, Prozesse zur Ausführung der Funktionen/Vorgänge ermöglichen, die in dem Ablaufplan und/oder dem Block oder den Blöcken des Blockschaubilds angegeben sind.
  • 1 ist ein Ablaufplan, der ein Verfahren 100 zum programmatischen Ermitteln eines Ausführungsmodus für eine Anforderungszuteilung unter Verwendung von historischen Maßzahlen gemäß einer Ausführungsform von erfindungsgemäßen Anordnungen veranschaulicht, die hier beschrieben werden. Bei dem Verfahren 100 kann eine Anforderungszuteilung, die einem gekennzeichneten ausführbaren Code (z. B. einem JAVA-Servlet) zugeordnet ist, welcher in einem Anwendungsserver (z. B. einem Anwendungsserver vom Typ JAVA 2 ENTERPRISE EDITION) ausgeführt wird, automatisch in einer von einer Maschine ermittelten Art und Weise ausgeführt werden. Unter Verwendung von historischen Maßzahlen kann die Ermittlung der Anforderungszuteilung während der Laufzeit durchgeführt werden, um einen Ausführungsmodus zu kennzeichnen: asynchron oder synchron. Bei dem ausführbaren Code kann es sich um eine oder mehrere Komponenten einer Web-Anwendung darunter Servlets, JAVA-Serverseiten, JAVA-Beans, JAVA-Klassen, Portlets und dergleichen, handeln, ohne auf diese beschränkt zu sein.
  • Ausführbarer Code kann zum Beispiel eine JAVA-Web-Anwendung sein, die einen dynamischen Web-Inhalt bereitstellt.
  • Das Verfahren 100 kann im Rahmen einer beliebigen Anzahl von geeigneten Systemen wie zum Beispiel dem System 300 durchgeführt werden. In der gesamten Beschreibung werden aus Gründen der Verständlichkeit und der Zweckmäßigkeit auf JAVA beruhende Umsetzungsbeispiele dargelegt. Der Umfang der Beschreibung ist in dieser Hinsicht nicht beschränkt, und die hier ausführlich beschriebenen erfindungsgemäßen Anordnungen können mittels beliebiger Technologien einer Vielfalt von Technologien (darunter auch Nicht-JAVA-Technologien) realisiert werden, solange die zur Realisierung genutzten Technologien die Einbindung von Ressourcen unterstützen. In einer Ausführungsform können zum Beispiel .NET-Technologien bei der Ermittlung eines Ausführungsmodus für eine Anforderungszuteilung unter Verwendung von historischen Maßzahlen verwendet werden, wie hier ausführlich beschrieben wird.
  • In der hier verwendeten Weise kann eine Anforderungszuteilung programmatische Befehle enthalten, die die Ausführung einer von einem Entwickler angegebenen Ressource gestatten. In einer Ausführungsform (z. B. einer auf JAVA beruhenden Ausführungsform) kann die Anforderungszuteilung ein Verfahren mit einer JAVA-Anwendungsprogrammierschnittstelle (Application Programming Interface (API)) wie zum Beispiel include() und forward() sein. Die Anforderungszuteilung kann mit Hilfe von einem oder mehreren Kennzeichnungsmechanismen, darunter, ohne auf diese beschränkt zu sein, eine Prozess-ID, eine automatischen/manuellen Code-Annotation, die Einbindung von Markern (Tags), eine Kennung in Form von einer Verweisadresse (Uniform Resource Locator (URL)), eine eindeutigen Pfadkennung, eine eindeutigen Abfragezeichenfolge und dergleichen eindeutig gekennzeichnet werden. Jeder Anforderungszuteilung können eine oder mehrere historische Maßzahlen und Einstellungen des Ausführungsmodus zugeordnet werden, was ein optimiertes Anforderungszuteilungsverfahren auf der Grundlage der Leistungsfähigkeit des Anwendungsservers ermöglicht.
  • Im Schritt 105 wird ein ausführbarer Code in einem Web-Behälter initialisiert. Der ausführbare Code kann eine Web-Anwendung sein, die in dem Web-Behälter ausgeführt wird. Bei dem Web-Behälter kann es sich um ein oder mehrere Konstrukte handeln, die in einem Anwendungsserver vom Typ JAVA 2 ENTERPRISE EDITION (J2EE) wie zum Beispiel einer JAVA VIRTUAL MACHINE (JVM) ausgeführt werden. Andere Server, wie zum Beispiel ein .NET-Server, können in Abhängigkeit von den Auswahlmöglichkeiten bei der Realisierung und einer Ziel-Realisierungsumgebung, in der das Verfahren 100 durchgeführt wird, anstelle des J2EE-Anwendungsservers verwendet werden. Im Schritt 110 wird eine Anforderungszuteilung, die dem initialisierten ausführbaren Code zugeordnet ist, gekennzeichnet. Der gekennzeichneten Zuteilung können eine oder mehrere Ressourcen, die ausgeführt werden sollen, zugeordnet werden. Bei den Ressourcen kann es sich um eine oder mehrere ausführbare Code-Objekte wie zum Beispiel Servlets, eine oder mehrere JAVA-SERVER-PAGE-(JSP-)Webseiten und dergleichen handeln. Im Schritt 115 kann das Verfahren, wenn es für die gekennzeichnete Zuteilung Maßzahlen gibt, zum Schritt 120 weiterschalten, andernfalls zum Schritt 155. Bei den Maßzahlen, die der gekennzeichneten Zuteilung zugeordnet sind, kann es sich um eine oder mehrere historische Maßzahlen handeln. Zu den Maßzahlen können, ohne auf diese beschränkt zu sein, die Ausführungsdauer und/oder die Ausführungshäufigkeit, die Komplexität, die Auslastung des Prozessors, die Speicherbelegung, die Eingabe/Ausgabe in das beziehungsweise aus dem Netzwerk, die Anzahl der abhängigen gekennzeichneten Zuteilungen und dergleichen gehören. Maßzahlen können beispielsweise die durchschnittliche Ausführungsdauer der gekennzeichneten Zuteilung über einen festgelegten Zeitraum beinhalten. Maßzahlen für jeden Ausführungsmodus einer gekennzeichneten Zuteilung können überdies erfasst werden, was Funktionen für eine optimale Entscheidungsfindung möglich macht. Das heißt, eine Auswertung von Maßzahlen für einen asynchronen Ausführungsmodus und für einen synchronen Ausführungsmodus kann durchgeführt werden, um Standardeinstellungen für eine Web-Anwendung festzulegen.
  • Im Schritt 120 kann das Verfahren, wenn historische Maßzahlen für die gekennzeichnete Zuteilung einen zuvor festgelegten Schwellwert überschreiten, zum Schritt 125 weiterschalten, andernfalls zum Schritt 140. Der Schwellwert kann zum Beispiel ein Zeitwert wie eine Ausführungsdauer sein. In einer Ausführungsform können die historische Ausführungszeit und Schwellwerte numerisch verglichen werden, um zu ermitteln, in welchem Modus die gekennzeichnete Zuteilung ausgeführt werden soll. In Fällen, in denen kein Schwellwert vorhanden ist, kann die gekennzeichnete Zuteilung unter Anwendung der Vorgehensweise mit der ”besten Vermutung” ausgeführt werden. Indem man beispielsweise ähnliche Zuteilungen auswertet, kann ein Schwellwert programmatisch abgeleitet werden, was eine intelligente Ausführung der gekennzeichneten Zuteilung ermöglicht. Im Schritt 125 wird ein Zuteilungsereignis bei einer Ereignisbehandlungsroutine verzeichnet. Im Schritt 130 wird die gekennzeichnete Zuteilung im asynchronen Modus ausgeführt, der die Ausführung eines nichtblockierenden Codes beinhalten kann. Das heißt, die Web-Anwendung kann weiterhin gleichzeitig mit der gekennzeichneten Zuteilung ausgeführt werden. Im Schritt 135 können Maßzahlen für die gekennzeichnete Zuteilung erfasst werden. Maßzahlen können mit Hilfe von einer oder mehreren Maßzahl-Erfassungskomponenten wie zum Beispiel Leistungsüberwachungsagenten erfasst werden. Zu Leistungsüberwachungsagenten können Auslastungs-Überwachungseinrichtungen, Werkzeuge zur Optimierung des ausführbaren Codes und dergleichen gehören, ohne auf diese beschränkt zu sein.
  • Im Schritt 140 kann die gekennzeichnete Zuteilung im synchronen Modus ausgeführt werden. Im Schritt 147 können Maßzahlen für die gekennzeichnete Zuteilung erfasst werden. Im Schritt 145 können Messdaten für die gekennzeichnete Zuteilung erfasst werden. In einer Ausführungsform können Messdaten die Blockierdauer der gekennzeichneten Zuteilung beinhalten. Im Schritt 150 kann das Verfahren, wenn die Ausführung der gekennzeichneten Zuteilung abgeschlossen ist, zum Schritt 157 weiterschalten, andernfalls kann das Verfahren zum Schritt 140 zurückkehren.
  • Im Schritt 155 wird die gekennzeichnete Zuteilung unter Verwendung von Standardeinstellungen ausgeführt und Maßzahlen, die der Zuteilung zugeordnet sind, können erfasst werden. Im Schritt 157 kann der Schwellwert auf der Grundlage von historischen Maßzahlen optional geändert werden. Eine Änderung kann beispielsweise das Erhöhen/Verringern der Schwellwerte im Laufe der Zeit einschließen. Das heißt, die Leistungsfähigkeit zur Laufzeit kann sich stetig verbessern, da historische Maßzahlen erfasst werden. Im Schritt 160 kann das Verfahren, wenn weitere Zuteilungen, die dem ausführbaren Code zugeordnet sind, zur Verarbeitung vorhanden sind, zum Schritt 110 zurückkehren, andernfalls kann es zum Schritt 165 weiterschalten. Im Schritt 165 kann die Ausführung des ausführbaren Codes beendet werden.
  • Es sollte sich verstehen, dass die offengelegten Schritte des Verfahrens 100 nicht als die Erfindung in irgendeiner Hinsicht einschränkende Schritte auszulegen sind. Das Verfahren 100 kann fortlaufend und in Echtzeit durchgeführt werden, was eine dynamische Optimierung eines jeden ausführbaren Codes bei schwankender Verfügbarkeit der Ressourcen des Anwendungsservers ermöglicht. Um eine Überoptimierung von Zuteilungen zu vermeiden, was die Leistungsfähigkeit beeinträchtigen kann, kann jede Anforderung von dem Verfahren 100 jedoch optional statisch festgelegt werden. In einer Ausführungsform kann das Verfahren 100 in Intervallen durchgeführt werden, wodurch die Datenverarbeitungsressourcen auf ein Mindestmaß beschränkt werden können.
  • 2 ist ein Blockschaubild, das ein Segment 210 eines ausführbaren Codes und ein Datenübertragungsmodell 230 darstellt, um einen Ausführungsmodus für eine Anforderungszuteilung unter Verwendung von historischen Maßzahlen gemäß einer Ausführungsform von erfindungsgemäßen Anordnungen, die hier beschrieben werden, programmatisch zu ermitteln. In einem Fall kann das Segment 210 des ausführbaren Codes eine JAVA-Quellcodedatei sein. Es besteht die Möglichkeit, hier andere Arten von Segmenten 210 zu verwenden, die auf anderen (Nicht-JAVA-)Technologien beruhen, wobei in dieser Offenlegungsschrift ein auf JAVA beruhendes Beispiel verwendet wird, um ein Konzept zum Ausdruck zu bringen, das als von jeder bestimmten Ausführungssprache unabhängig auszulegen ist. In dem Segment 210 des ausführbaren Codes kann eine Anwendungsprogrammierschnittstelle (API) 212 für eine Anforderungszuteilung zulassen, dass eine Anforderungszuteilung auf der Grundlage von einer oder mehreren Bedingungen, zu denen verfügbare Ressourcen, die Leistungshistorie und dergleichen gehören, ohne auf diese beschränkt zu sein, automatisch in einer optimierten Weise ausgeführt wird. In einer Ausführungsform kann die API 212 eine Hüllenklasse sein, die einen vorhandenen Anforderungszuteiler umhüllt. In einer anderen Ausführungsform kann die API 212 ein direkter Ersatz für herkömmliche Anforderungszuteiler sein. Das heißt, vorhandener ausführbarer Code kann unverändert bleiben, während er gleichzeitig von Leistungsgewinnen der API 212 profitiert. In einer Ausführungsform kann ein Anforderungszuteiler 244 eine Komponente einer Transportkanalkette 240 sein, was die Ausführung einer Anforderungszuteilung in einem transparenten, dynamischen Modus erlaubt.
  • Unter Verwendung der API 212 kann es der Entwickler einer Anwendung gestatten, dass eine Anforderungszuteilung 214 in einem optimalen Ausführungsmodus zur Laufzeit auf der Grundlage der verfügbaren Datenverarbeitungsressourcen verarbeitet wird. In einer Ausführungsform kann die API 212 eine Komponente einer Web-Behälterplattform der Serie IBM WEBSPHERE sein. Ein Anwendungsentwickler kann zum Beispiel über eine oder mehrere Importanweisungen (z. B. ”importcom.ibm.Websphere.Webcontainer.RequestDispatch”) auf Anforderungszuteilungs-Funktionen zugreifen. Die Anforderungszuteilung 214 kann einen oder mehrere Parameter enthalten, um eine kundenspezifische Ausgestaltung der Ausführung zu ermöglichen. In einer Ausführungsform können Argumente (z. B. auto, 500 ms) einem Anwendungsentwickler ermöglichen, einen Teil des Verhaltens der Anforderungszuteilung zu steuern. Außerdem kann die API 212 Funktionen zulassen, um Anforderungszuteilungen programmspezifisch (natively) zu verwalten und zu überwachen, wodurch Entwickler den Ausführungscode und die Laufzeitumgebung weiterhin steuern können.
  • In einer Ausführungsform kann sich ein Anforderungszuteiler 244 in der Transportschicht 232 eines Open-System-Interconnect-Modells 230 befinden. Der Zuteiler 244 kann Anforderungen des HTTP 246 transparent empfangen und geeigneten Web-Behältern 242 zuteilen. Somit kann der Zuteiler 244 unabhängig von installierten Anwendungen und Anwendungsbeschränkungen arbeiten.
  • Hier vorgelegte Zeichnungen dienen lediglich der Veranschaulichung und sollten nicht als die Erfindung in irgendeiner Hinsicht einschränkend verstanden werden. In einer Ausführungsform kann die API 212 für den Anwendungsentwickler transparent sein, so dass die Syntax der Anforderungszuteilung identisch mit der herkömmlichen Syntax ist. Außerdem kann die API 212 eine Komponente eines Basispakets sein, das einer Web-Anwendung Funktionen automatisch zur Verfügung stellt. Das heißt, für den Entwickler der Anwendung besteht keine Notwendigkeit, die Funktionen der API 212 manuell zu importieren.
  • 3 ist ein Blockschaubild, das ein System 300 darstellt, um einen Ausführungsmodus für eine Anforderungszuteilung unter Verwendung von historischen Maßzahlen gemäß einer Ausführungsform von erfindungsgemäßen Anordnungen, die hier beschrieben werden, programmatisch zu ermitteln. In dem System 300 kann der Anforderungszuteiler 340 gestatten, dass eine Zuteilung 326, die einem Servlet 324 zugeordnet ist, in einem automatisch ermittelten Modus ausgeführt wird. Der programmatisch ermittelte Modus kann ein synchroner Ausführungsmodus oder ein asynchroner Ausführungsmodus sein. In einer Ausführungsform kann der automatisch ermittelte Ausführungsmodus auf herkömmliche Weise durchgeführt werden. Das heißt, dass keine Änderung des Zuteilungsverhaltens und/oder des Zusatzaufwands erforderlich ist, um die Funktionen des Zuteilers 340 zu unterstützen. In einer Ausführungsform kann die Steuerkomponente 342 einen Ausführungsmodus für eine spätere Ausführung der Anforderungszuteilung 326 automatisch ermitteln. Somit kann jede Instanz der Zuteilung 326 als Reaktion auf die Verfügbarkeit der Ressourcen des Servers 320 in einem synchronen Modus oder in einem asynchronen Modus ausgeführt werden.
  • In der hier verwendeten Weise kann jedes Servlet 324 über eine Anforderungszuteilung 326 einer oder mehreren ausführbaren Ressourcen zugeordnet werden. Das Servlet 324 kann in einem Web-Behälter 323 eines Anwendungsservers 320 vom Typ JAVA 2 ENTERPRISE EDITION (J2EE) (oder in einem anderen Server-Typ in anderen in Betracht gezogenen Ausführungsformen) ausgeführt werden. Bei dem Web-Behälter 323 kann es sich um eine dynamische Laufzeitumgebung wie zum Beispiel eine Laufzeitumgebung vom Typ JAVA VIRTUAL MACHINE handeln. Das Servlet 324 kann zum Beispiel eine Web-Anwendung sein, die einem anfordernden Client 310 in einer Browser-Schnittstelle 312 auf dem Web beruhenden Inhalt (z. B. Web-Seiten) darstellen kann. Jeder Anforderungszuteilung 326 kann ein eindeutiger Kennwert wie zum Beispiel eine Prozess-ID oder ein eindeutiger Schlüssel und/oder eine Ressourcenkennung (z. B. Uniform Resource Locator) zugeordnet werden. In einer Ausführungsform kann der eindeutige Schlüssel ein automatisch erzeugter Wert (z. B. von der Zuteilungs-Steuerkomponente 342) oder ein manuell festgelegter Wert sein. In einem Fall kann der eindeutige Kennwert als Annotation (oder sogar als Kommentar zum Quellcode) gespeichert werden, der während der Kompilierungszeit entnommen werden kann.
  • Das Servlet 324 kann eine Anforderung 380 empfangen, welche die Ausführung einer Anforderungszuteilung 326 auslösen kann.
  • Wenn die Laufzeitumgebung 323 auf eine Anforderungszuteilung 326 trifft, kann die Zuteilung 326 ausgewertet werden, um festzustellen, welche Ressource auf der Grundlage einer vom Benutzer angegebenen Ressourcenkennung ausgeführt werden soll. In einer Ausführungsform kann der Zuteiler 340 die Ausführung der angegebenen Ressource mit einer anderen Laufzeitumgebung wie zum Beispiel Servlets, die in anderen Web-Behältern ausgeführt werden, aushandeln.
  • Der Anforderungszuteiler 340 kann die Zuteilung 326 auf der Grundlage von einer oder mehreren Regeln 346 und/oder Einstellungen eindeutig kennzeichnen und ausführen. Das heißt, der Zuteiler 340 kann so konfiguriert werden, dass er sich an die Verfügbarkeit der Ressourcen des Servers 320 (z. B. die Serverauslastung) anpasst. Der Anforderungszuteiler 340 kann die Zuteilungs-Steuerkomponente 342, die Maßzahl-Steuerkomponente 343, die Leistungs-Überwachungseinrichtung 344, die Regeln 346 und die Schnittstelle 352 enthalten. In einer Ausführungsform kann der Zuteiler 340 eine steckbare Erweiterung des Web-Behälters 323 sein. Die Einstellungen 348 können eine von einem Benutzer festgelegte Einstellung oder eine automatisch ermittelte Einstellung sein. Die Standard-Zeitüberschreitungswerte für Zuteilungen können zum Beispiel auf der Grundlage der Leistungsfähigkeit des Servlets 324 dynamisch festgelegt werden.
  • Die Zuteilungs-Steuerkomponente 342 kann die Zuteilung 326 verarbeiten und mit Hilfe historischer Maßzahlen 350 einen geeigneten Ausführungsmodus programmatisch ermitteln. Die Steuerkomponente 342 kann für die Kennzeichnung und/oder Ausführung von lokalen und fernen Ressourcen, die der Zuteilung 326 zugeordnet sind, zuständig sein. In Fällen, in denen die Verarbeitung von Ressourcen ressourcenfern erfolgt, kann die Steuerkomponente 342 die Anforderung an den fernen Prozessor weiterleiten, wo die Verarbeitung durchgeführt werden kann. In Fällen, in denen die Verarbeitung von Ressourcen lokal erfolgt, kann die Steuerkomponente 342 die Anforderungszuteilung 326 handhaben.
  • Die Maßzahl-Steuerkomponente 343 kann historische Maßzahlen, die dem Servlet 324 und/oder der Zuteilung 326 zugeordnet sind, erfassen. Maßzahlen können beispielsweise auf der Ebene des Servlets 324 erfasst werden, wodurch man Maßzahlen einer hohen Ebene erhalten kann. In einem Fall kann die Maßzahl-Steuerkomponente 343 Maßzahlen in Echtzeit oder nahezu in Echtzeit erfassen. Zum Beispiel kann die Steuerkomponente 343 so konfiguriert werden, dass sie die letzte X Anzahl von Zuteilungen 326 über die letzten Y Sekunden verfolgt, wobei X und Y vom Benutzer konfiguriert werden können. Überdies kann die Maßzahl-Steuerkomponente 343 zur Überwachung der Leistung des Web-Behälters 323 in Echtzeit verwendet werden, die über die Schnittstelle 352 dargestellt werden kann.
  • Zu den historischen Maßzahlen 350 können Informationen über die Ressourcen wie zum Beispiel die Latenzzeit, der Ausführungsmodus und die Speicherbelegung gehören. Historische Maßzahlen 350 können einer jeden Ausführung der Zuteilung 326 zugeordnet werden. In einer Ausführungsform können Maßzahlen für jeden Modus (z. B. den asynchronen und den synchronen Modus) berechnet werden, was die Auswertung einer Gesamt-Maßzahl für jeden Modus ermöglicht. Auf diese Weise kann die Steuerkomponente 343 einen geeigneten Ausführungsmodus für die Zuteilung 326 vor der Ausführung berechnen. In einer anderen Ausführungsform können die der Zuteilung 326 zugeordneten Maßzahlen 350 zusammengerechnet und mit einem Schwellwert (z. B. der Regel 360) im Regelsatz 360 verglichen werden. Die Speicherkosten in Verbindung mit einer asynchronen Ausführung können beispielsweise mit einem Speicherquotenwert (z. B.
  • Schwellwert) verglichen werden, um festzustellen, ob der Zusatzaufwand einer asynchronen Ausführung eine optimale Wahl ist. In einem anderen Fall kann der zeitliche Zusatzaufwand für das Einrichten/Löschen eines asynchronen Kontexts mit einem zuvor festgelegten Schwellwert verglichen werden, um festzustellen, welcher Modus (asynchron oder synchron) verwendet werden soll.
  • Der Regelsatz 346 kann eine oder mehrere beliebig komplexe Regeln für die Ermittlung des Ausführungsmodus einer Zuteilung 326 umfassen. Der Regelsatz 346 kann von einem Benutzer festgelegt und/oder heuristisch ermittelt werden. In einer Ausführungsform können mehrere Maßzahlen zusammen ausgewertet werden, um einen Ausführungsmodus zu ermitteln. Der Regelsatz 346 kann, ohne darauf beschränkt zu sein, einen Schwellwert, einen Ausführungsmodus und eine Ereignisbehandlungsroutine, die der Anforderungszuteilung zugeordnet ist, und dergleichen enthalten. Der Schwellwert kann beispielsweise eine von einem Benutzer festgelegte Einstellung oder ein automatisch ermittelter Wert sein. Der Regelsatz 346 kann des Weiteren die Art der zu verwendenden Aggregierung (z. B. serverseitig im Vergleich zu clientseitig) angeben, welche zur Vorbereitung der Anforderung 382 verwendet werden kann. Wenn die Ausführung der Zuteilung 326 abgeschlossen ist, kann die Anforderung 382 erzeugt und dem Client 310 über das Netzwerk 370 übermittelt werden.
  • Hier vorgelegte Zeichnungen dienen lediglich der Veranschaulichung und sollten nicht als die Erfindung in irgendeiner Hinsicht einschränkend verstanden werden. Bei dem System 300 kann es sich um eine oder mehrere Komponenten einer verteilten Datenverarbeitungsumgebung, Netzwerk-Datenverarbeitungsumgebung, einer Service Oriented Architecture (SOA) und dergleichen handeln. In einer Ausführungsform kann es sich bei dem System 300 um eine oder mehrere Komponenten eines Anwendungsservers vom Typ IBM WEBSPHERE APPLICATION SERVER handeln. In einer anderen Ausführungsform kann das System 300 eine oder mehrere Komponenten eines .NET-Rahmens (oder eines beliebigen anderen Rahmens, der die Einbindung von Ressourcen für Zwecke, die hier beschrieben werden, ermöglicht) enthalten.
  • 4 ist ein Blockschaubild, das einen Satz von Schnittstellen 410, 430 darstellt, um einen Ausführungsmodus für eine Anforderungszuteilung unter Verwendung von historischen Maßzahlen gemäß einer Ausführungsform von erfindungsgemäßen Anordnungen, die hier beschrieben werden, programmatisch zu ermitteln. Die Schnittstellen 410, 430 können im Rahmen des Systems 300 dargestellt werden. In der Schnittstelle 410 können Anforderungszuteilungen in Verbindung mit einer oder mehreren Web-Anwendungen, die in Web-Behältern ausgeführt werden, im Bereich 412 dargestellt werden. Bei den Web-Anwendungen kann es sich um eine oder mehrere ausführbare Code-Einheiten wie zum Beispiel JAVA-Servlets, JAVA SERVER PAGES (JSP) und dergleichen handeln. In der Schnittstelle 440 können Maßzahlen, die der Anforderungszuteilung 412 zugeordnet sind, dargestellt werden.
  • In einer Ausführungsform kann die Darstellung von Anforderungszuteilungen und Maßzahlen 442 in Echtzeit stattfinden, so dass man schnell Momentaufnahmen der Ausführung erhalten kann.
  • Die Schnittstelle 410 kann die Verwaltung von einer oder mehreren in Ausführung befindlichen Anforderungszuteilungen und abhängigen Anforderungszuteilen gestatten. Die Schnittstelle 410 kann die Bereiche 412, 420 und die interaktiven Schnittstellenelemente 422, 430, 432 enthalten.
  • In der Schnittstelle 410 können Informationen, die zu einer Anforderungszuteilung 414 gehören, im Bereich 412 dargestellt werden. Informationen über die Anforderungszuteilung können die Prozess-ID, die Ausführungsdauer, den Ausführungsmodus und dergleichen, ohne auf diese beschränkt zu sein, beinhalten. Der Bereich 412 kann zum Beispiel jede Anforderungszuteilung und abhängige Zuteilung, die einem Servlet A zugeordnet sind, darstellen. In einer Ausführungsform kann ein Administrator Gruppen von Anforderungszuteilungen selektiv verwalten. Die Schnittstelle 410 kann zusätzliche Informationen wie zum Beispiel aktive Regeln, Leistungsmaßzahlen und dergleichen darstellen.
  • Informationen, die zu einer ausgewählten Anforderungszuteilung 414 gehören, können im Bereich 420 dargestellt werden. Durch eine Interaktion mit dem Schnittstellenelement 430 können beispielsweise Informationen in Verbindung mit einer Anforderungszuteilung dargestellt werden. In einem Fall kann der Bereich 420 eine Änderung von Werten einer Anforderungszuteilung wie zum Beispiel Zeitüberschreitungswerten, des Ausführungsmodus und dergleichen gestatten. Das heißt, eine manuelle Optimierung von Anforderungszuteilungen in Echtzeit kann durchgeführt werden, wenn sich eine automatische Optimierung als nicht erfolgreich erweist. In einer Ausführungsform kann die Schnittstelle 410 eine Funktion zur Verwaltung von Threads zulassen. Das Schnittstellenelement 432 kann es beispielsweise gestatten, dass eine ausgewählte Anforderungszuteilung beendet wird. Durch Interaktion mit dem Schnittstellenelement 422 kann die Prüfungsschnittstelle 440 dargestellt werden.
  • Die Schnittstelle 440 kann den Bereich 442 enthalten, der Maßzahlen darstellen kann, die einer ausgewählten Anforderungszuteilung 414 zugeordnet sind. Der Bereich 442 kann historische Maßzahlen wie zum Beispiel die Prozessornutzung, die Ausführungsdauer und die Speicherbelegung enthalten. Der Bereich 442 kann zum Beispiel die durchschnittliche Ressourcenauslastung einer Anforderungszuteilung unter Verwendung der erfassten historischen Maßzahlen darstellen. In einer Ausführungsform können die historischen Maßzahlen in mehreren Detaillierungsgraden dargestellt werden. Historische Maßzahlen können zum Beispiel auf der Grundlage von Zeitschritten von einem Tag, einer Woche, einem Monat und dergleichen dargestellt werden.
  • Hier vorgelegte Zeichnungen dienen lediglich der Veranschaulichung und sollten nicht als die Erfindung in irgendeiner Hinsicht einschränkend verstanden werden. In einer Ausführungsform kann es sich bei den Schnittstellen 410, 440 um einen oder mehrere Bildschirme eines Optimierungs-Tool vom Typ JAVA 2 ENTERPRISE EDITION handeln. In einer anderen Ausführungsform können die Schnittstellen 410, 440 eine Komponente einer integrierten Entwicklungsumgebung (integrated development environment (IDE)) sein. Bei den Schnittstellen 410, 440 kann es sich um eine grafische Benutzeroberfläche (GUI), eine sprachgesteuerte Benutzeroberfläche (VUI), eine Mehrmodenschnittstelle und dergleichen handeln. Zu Schnittstellenelementen in Verbindung mit den Schnittstellen 410, 440 können, ohne auf diese beschränkt zu sein, interaktive Schaltflächen, Aufklappmenüs, Optionsauswahlelemente und dergleichen gehören.
  • Die hier verwendete Terminologie dient lediglich dazu, bestimmte Ausführungsformen zu beschreiben und ist nicht als Einschränkung der Erfindung zu verstehen. Die Singular-Formen ”ein”, ”eine” und ”der”, ”die”, ”das” sollen in der hier verwendeten Weise auch die Plural-Formen einschließen, sofern der Kontext nicht eindeutig etwas anderes angibt. Des Weiteren versteht es sich, dass die Begriffe ”umfasst” und/oder ”umfassen”, wenn sie in dieser Beschreibung verwendet werden, das Vorhandensein von angegebenen Merkmalen, ganzen Zahlen, Schritten, Operationen, Elementen und/oder Komponenten bezeichnen, das Vorhandensein oder das Hinzufügen von einem oder mehreren anderen/weiteren Merkmalen, ganzen Zahlen, Schritten, Operationen, Elementen, Komponenten und/oder Gruppen der Vorgenannten jedoch nicht ausschließen.
  • Die entsprechenden Strukturen, Materialien, Vorgänge und Gleichwertiges von allen Mitteln oder Schritten sowie Funktionselementen in den nachstehenden Ansprüchen sollen jedwede Struktur, jedwedes Material oder jedweden Vorgang zur Ausführung der Funktion in Kombination mit anderen beanspruchten Elementen, die im Einzelnen beansprucht werden, beinhalten. Die Beschreibung der vorliegenden Erfindung erfolgte zum Zweck der Veranschaulichung und Erläuterung, erhebt jedoch keinen Anspruch auf Vollständigkeit und ist auch nicht als auf die Erfindung in der offengelegten Form beschränkt zu verstehen. Viele Ab- und Veränderungen sind für den Fachmann erkennbar, ohne vom Umfang der Erfindung abzuweichen. Die Ausführungsform wurde gewählt und beschrieben, um die Grundgedanken der Erfindung und die praktische Anwendung bestmöglich zu erklären und um anderen Fachleuten das Verständnis der Erfindung hinsichtlich verschiedener Ausführungsformen mit verschiedenen Änderungen, wie sie für die jeweilige vorgesehene Verwendung geeignet sind, zu ermöglichen.
  • Der Ablaufplan und die Blockschaubilder in den 1 bis 4 zeigen die Architektur, die Funktionalität und die Betriebsweise von möglichen Ausführungsarten von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In dieser Hinsicht kann jeder Block in dem Ablaufplan oder den Blockschaubild ein Modul, ein Segment oder einen Teil von Code darstellen, das beziehungsweise der einen oder mehrere ausführbare Befehle zur Ausführung der angegebenen logischen Funktion(en) umfasst. Es sei auch angemerkt, dass die in dem Block angegebenen Funktionen in manchen alternativen Ausführungsarten nicht in der in den Figuren angegebenen Reihenfolge auftreten können. In Abhängigkeit von der mit ihnen verbundenen Funktionalität können beispielsweise zwei Blöcke, die als aufeinanderfolgende Blöcke dargestellt sind, tatsächlich weitgehend gleichzeitig ausgeführt werden oder die Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden. Man wird auch feststellen, dass jeder Block der Blockschaubilder/und oder der Darstellung in dem Ablaufplan sowie Kombinationen aus Blöcken in den Blockschaubildern und/oder der Darstellung in dem Ablaufplan von Systemen, die auf Hardware für spezielle Anwendungen beruhen und die angegebenen Funktionen oder Vorgänge durchführen, oder von Kombinationen aus Hardware für spezielle Anwendungen und Computerbefehlen ausgeführt werden können.

Claims (20)

  1. Verfahren zum Zuteilen einer Anforderung, das Folgendes umfasst: Kennzeichnen einer Anforderungszuteilung, die in einem ersten ausführbaren Code während der Ausführungszeit ausgeführt werden soll, wobei der Anforderungszuteilung ein Kennwert zugeordnet wird, wobei der Kennwert der Anforderungszuteilung einen zweiten ausführbaren Code, der ausgeführt werden soll, kennzeichnet; vor der Ausführung des zweiten ausführbaren Codes Ermitteln eines Ausführungsmodus für die Ausführung des zweiten ausführbare Codes, wobei der Vorgang des Ermittelns das Auswerten von mindestens einer Leistungsmaßzahl oder aber einem Schwellwert umfasst, wobei der Schwellwert mindestens ein von einem Benutzer festgelegter Wert oder aber ein programmatisch festgelegter Wert ist, wobei der Ausführungsmodus ein asynchroner Ausführungsmodus oder ein synchroner Ausführungsmodus ist; und als Reaktion auf das Ermitteln des Ausführungsmodus Ausführen der Anforderungszuteilung auf der Grundlage des Ausführungsmodus, wobei der synchrone Ausführungsmodus dazu führt, dass der erste ausführbare Code anhält und der zweite ausführbare Code die Ausführung einleitet und abschließt, woraufhin der angehaltene erste ausführbare Code die Ausführung wieder aufnimmt, und wobei der asynchrone Ausführungsmodus dazu führt, dass der erste und der zweite ausführbare Code gleichzeitig ausgeführt werden.
  2. Verfahren nach Anspruch 1, wobei sich der erste und der zweite ausführbare Code in einer Komponente eines Web-Behälters befinden, wobei der Web-Behälter einer Laufzeitumgebung zugeordnet ist.
  3. Verfahren nach Anspruch 1, wobei der eindeutige Kennwert, welcher der Anforderungszuteilung zugeordnet ist, mindestens ein automatisch erzeugter eindeutiger Kennwert, ein Uniform Resource Identifier (URI), ein eindeutiger Pfadwert oder aber eine eindeutige Abfragezeichenfolge ist.
  4. Verfahren nach Anspruch 1, wobei der Ausführungsmodus des ersten und des zweiten ausführbaren Codes während einer späteren Ausführung dynamisch angepasst werden kann, wobei der erste und der zweite ausführbare Code mindestens einer der folgenden ist: ein JAVA-Servlet, eine JAVA SERVER PAGE (JSP), eine JAVA BEAN, ein JAVA-fähiges Portlet.
  5. Verfahren nach Anspruch 1, wobei das Ermitteln des Ausführungsmodus des Weiteren Folgendes umfasst: Erzeugen der Leistungsmaßzahl unter Verwendung von historischen Daten von Anforderungszuteilungen und deren Ausführungszeiten.
  6. Verfahren nach Anspruch 1, wobei das Ermitteln des Ausführungsmodus des Weiteren Folgendes umfasst: wenn die Leistungsmaßzahl den Schwellwert nicht übersteigt, synchrones Ausführen der Anforderungszuteilung; und wenn die Leistungsmaßzahl den Schwellwert übersteigt, asynchrones Ausführen der Anforderungszuteilung.
  7. Verfahren nach Anspruch 1, wobei das Ausführen der Anforderungszuteilung des Weiteren Folgendes umfasst: als Reaktion auf die Ausführungsleistung der Anforderungszuteilung Umschalten einer Modus-Einstellung, die der Anforderungszuteilung zugeordnet ist, von einem ersten Ausführungsmodus in einen zweiten Ausführungsmodus, wobei die Modus-Einstellung den Modus angibt, in dem die Anforderungszuteilung ausgeführt werden soll, wobei der Modus ein asynchroner Ausführungsmodus und/oder ein synchroner Ausführungsmodus ist, wobei der Vorgang des Umschaltens dazu führt, dass die spätere Ausführung der Anforderungszuteilung in dem zweiten Ausführungsmodus stattfindet.
  8. Verfahren nach Anspruch 1, wobei die Leistungsmaßzahl mindestens eine Information über das Zeitverhalten ist, die der historischen Ausführung der Anforderungszuteilung zugeordnet ist.
  9. Verfahren nach Anspruch 1, das des Weiteren Folgendes umfasst: programmatisches Erfassen von mindestens einer Leistungsmaßzahl, die einem Anforderungszuteiler zugeordnet ist, während der Ausführung der Anforderungszuteilung, wobei die Leistungsmaßzahl ein Ressourcen-Zuteilungswert ist.
  10. Verfahren nach Anspruch 1, das des Weiteren Folgendes umfasst: transparentes Umhüllen der Funktionen einer vorhandenen Zuteilungs-API, wobei die vorhandene Zuteilungs-API eine Anforderungszuteilung in einem synchronen Ausführungsmodus ausführt, wobei die Umhüllung eine asynchrone oder eine synchrone Ausführung der Anforderungszuteilung gestattet.
  11. System zum Zuteilen einer Anforderung, das Folgendes umfasst: eine Zuteilungs-Steuerkomponente, die eine Anforderungszuteilung, welche einem ersten ausführbaren Code zugeordnet ist, kennzeichnen und ausführen kann, wobei die Zuteilungs-Steuerkomponente eine Komponente einer Transportkanalkette in einer Laufzeitumgebung ist, wobei die Transportkanalkette einer Transportschicht eines Open-System-Interconnect-(OSI-)Schichtenmodells zugeordnet ist; eine Anforderungszuteilung, die dem ersten ausführbaren Code zugeordnet ist, wobei der Anforderungszuteilung ein eindeutiger Kennwert zugeordnet ist, wobei der eindeutige Kennwert eine eindeutige Ressource kennzeichnet, die ausgeführt werden soll, wobei die Anforderungszuteilung die Ausführung der eindeutigen Ressource auslöst, wobei die eindeutige Ressource ein zweiter ausführbarer Code ist; eine Leistungsmaßzahl, die der Anforderungszuteilung zugeordnet ist, wobei die Leistungsmaßzahl während der Ausführung der Anforderungszuteilung automatisch erfasst wird, wobei die Leistungsmaßzahl verwendet wird, um das Ausführungsverhalten der Anforderungszuteilung zu ändern; und einen Regelsatz, der so konfiguriert ist, dass er mindestens einen Schwellwert, einen Ausführungsmodus oder aber eine Ereignisbehandlungsroutine, die der Anforderungszuteilung zugeordnet ist, festlegt, wobei der Schwellwert eine von einem Benutzer festgelegte Einstellung und/oder ein automatisch ermittelter Wert ist, wobei es sich bei dem Ausführungsmodus um einen synchronen Ausführungsmodus und/oder um einen asynchronen Ausführungsmodus handelt, wobei der synchrone Ausführungsmodus dazu führt, dass der erste ausführbare Code anhält und der zweite ausführbare Code die Ausführung einleitet und abschließt, woraufhin der angehaltene erste ausführbare Code die Ausführung wieder aufnimmt, und wobei der asynchrone Ausführungsmodus dazu führt, dass der erste und der zweite ausführbare Code gleichzeitig ausgeführt werden.
  12. System nach Anspruch 11, wobei der eindeutige Kennwert, welcher der Anforderungszuteilung zugeordnet ist, mindestens einer der folgenden ist: ein automatisch erzeugter eindeutiger Kennwert, ein Uniform Resource Identifier (URI), ein eindeutiger Pfadwert, eine eindeutige Abfragezeichenfolge.
  13. System nach Anspruch 11, das des Weiteren Folgendes umfasst: eine Leistungs-Überwachungseinrichtung, die so konfiguriert ist, dass sie eine eindeutige Anforderungszuteilung kennzeichnet und die Leistung der gekennzeichneten Anforderungszuteilung überwacht, wobei die Kennzeichnung und die Überwachung in Echtzeit durchgeführt werden.
  14. System nach Anspruch 11, das des Weiteren Folgendes umfasst: eine Benutzerschnittstelle, die es dem Benutzer ermöglicht, das beanspruchte System kundenspezifisch auszugestalten, wobei die kundenspezifische Ausgestaltung mindestens eines von Folgendem ist: ein von einem Benutzer festgelegter Schwellwert, eine von einem Benutzer festgelegte Leistungsmaßzahl oder aber ein von einem Benutzer festgelegter Ausführungsmodus.
  15. System nach Anspruch 11, wobei die Zuteilungs-Steuerkomponente den Schwellwert als Reaktion auf mindestens eine Leistungsmaßzahl ändern kann.
  16. Computerprogrammprodukt, das ein computerlesbares Speichermedium umfasst, auf dem sich ein von einem Computer nutzbarerer Programmcode befindet, wobei der von dem Computer nutzbare Programmcode Folgendes umfasst: von einem Computer nutzbarer Programmcode, der in einem physisch greifbaren Speichermedium gespeichert ist, das dazu dient, eine Anforderungszuteilung, die in einem ersten ausführbaren Code während der Ausführungszeit ausgeführt werden soll, zu kennzeichnen, wobei der Anforderungszuteilung ein eindeutiger Kennwert zugeordnet wird, wobei der eindeutige Kennwert der Anforderungszuteilung einen zweiten ausführbaren Code, der ausgeführt werden soll, kennzeichnet; von einem Computer nutzbarer Programmcode, der in einem physisch greifbaren Speichermedium gespeichert ist, das dazu dient, vor der Ausführung des zweiten ausführbaren Codes einen Ausführungsmodus für die Ausführung des zweiten ausführbare Codes zu ermitteln, wobei der Vorgang des Ermittelns das Auswerten von einer Leistungsmaßzahl und/oder einem Schwellwert umfasst, wobei der Schwellwert ein von einem Benutzer festgelegter Wert und/oder ein programmatisch festgelegter Wert ist, wobei der Ausführungsmodus ein asynchroner Ausführungsmodus oder ein synchroner Ausführungsmodus ist; und- von einem Computer nutzbarer Programmcode, der in einem physisch greifbaren Speichermedium gespeichert ist, das dazu dient, als Reaktion auf den Vorgang des Ermittelns die Anforderungszuteilung auf der Grundlage des Ausführungsmodus auszuführen, wobei der synchrone Ausführungsmodus dazu führt, dass der erste ausführbare Code anhält und der zweite ausführbare Code die Ausführung einleitet und abschließt, woraufhin der angehaltene erste ausführbare Code die Ausführung wieder aufnimmt, und wobei der asynchrone Ausführungsmodus dazu führt, dass der erste und der zweite ausführbare Code gleichzeitig ausgeführt werden.
  17. Computerprogrammprodukt nach Anspruch 16, wobei sich der erste und der zweite ausführbare Code in einer Komponente eines Web-Behälters befinden, wobei der Web-Behälter einer Laufzeitumgebung zugeordnet ist.
  18. Computerprogrammprodukt nach Anspruch 16, das des Weiteren Folgendes umfasst: von einem Computer nutzbarer Programmcode, der in einem physisch greifbaren Medium gespeichert ist, das dazu dient, mindestens eine Leistungsmaßzahl, die der Anforderungszuteilung zugeordnet ist, zu kennzeichnen, wobei die Leistungsmaßzahl eine historische Maßzahl ist, wobei die historische Maßzahl ein statistischer Wert ist, der mindestens eine Eigenschaft der historischen Ausführung der Anforderungszuteilung angibt.
  19. Computerprogrammprodukt nach Anspruch 16, das des Weiteren Folgendes umfasst: von einem Computer nutzbarer Programmcode, der in einem physisch greifbaren Medium gespeichert ist, das dazu dient, als Reaktion auf die Ausführungsleistung der Anforderungszuteilung eine Modus-Einstellung, die der Anforderungszuteilung zugeordnet ist, von einem ersten Ausführungsmodus in einen zweiten Ausführungsmodus umzuschalten, wobei die Modus-Einstellung den Modus angibt, in dem die Anforderungszuteilung ausgeführt werden soll, wobei der Modus ein asynchroner Ausführungsmodus und/oder, ein synchroner Ausführungsmodus ist, wobei der Vorgang des Umschaltens dazu führt, dass die spätere Ausführung der Anforderungszuteilung in dem zweiten Ausführungsmodus stattfindet.
  20. Computerprogrammprodukt nach Anspruch 16, das des Weiteren Folgendes umfasst: von einem Computer nutzbarer Programmcode, der in einem physisch greifbaren Medium gespeichert ist, das dazu dient, mindestens eine Leistungsmaßzahl, die einem Anforderungszuteiler zugeordnet ist, während der Ausführung der Anforderungszuteilung zu erfassen, wobei die Leistungsmaßzahl ein Ressourcen-Zuteilungswert ist.
DE112011100739T 2010-03-01 2011-02-28 Programmatisches Ermitteln eines Ausführungsmodus für eine Anforderungszuteilung unter Verwendung von historischen Masszahlen Active DE112011100739T8 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/715,139 2010-03-01
US12/715,139 US8296411B2 (en) 2010-03-01 2010-03-01 Programmatically determining an execution mode for a request dispatch utilizing historic metrics
PCT/EP2011/052883 WO2011107415A1 (en) 2010-03-01 2011-02-28 Programmatically determining an execution mode for a request dispatch utilizing historic metrics

Publications (2)

Publication Number Publication Date
DE112011100739T5 true DE112011100739T5 (de) 2013-06-27
DE112011100739T8 DE112011100739T8 (de) 2013-08-29

Family

ID=44141933

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112011100739T Active DE112011100739T8 (de) 2010-03-01 2011-02-28 Programmatisches Ermitteln eines Ausführungsmodus für eine Anforderungszuteilung unter Verwendung von historischen Masszahlen

Country Status (6)

Country Link
US (2) US8296411B2 (de)
JP (1) JP5963682B2 (de)
CN (1) CN102782652B (de)
DE (1) DE112011100739T8 (de)
GB (1) GB2486852B (de)
WO (1) WO2011107415A1 (de)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9727397B2 (en) * 2007-07-23 2017-08-08 Paypal, Inc. Container-less JSP template
US9921934B1 (en) * 2011-10-14 2018-03-20 Amazon Techologies, Inc. Storage process metrics
DE102012009482B4 (de) 2012-05-12 2020-06-25 Volkswagen Aktiengesellschaft Funktional erweiterbares Fahrzeugsteuergerät und Verfahren zum Ergänzen der Funktionalität eines Fahrzeugsteuergeräts
US9323588B2 (en) 2013-03-14 2016-04-26 Comcast Cable Communications, Llc Service platform architecture
RU2568292C2 (ru) * 2013-12-27 2015-11-20 Закрытое акционерное общество "Лаборатория Касперского" Система и способ выбора синхронного или асинхронного межпроцессного взаимодействия
US9961011B2 (en) 2014-01-21 2018-05-01 Oracle International Corporation System and method for supporting multi-tenancy in an application server, cloud, or other environment
US10084843B2 (en) * 2014-07-14 2018-09-25 Oracle Internatonal Corporation System and method for web container partitions in a multitenant application server environment
US10397128B2 (en) * 2014-10-30 2019-08-27 Amazon Technologies, Inc. Routing handler for rule-based action triggering
US10567476B2 (en) 2014-10-30 2020-02-18 Amazon Technologies, Inc. Rule-based action triggering in a provider network
CA2965520A1 (en) * 2014-10-30 2016-05-06 Amazon Technologies, Inc. Rule-based action triggering in a provider network
US20160283566A1 (en) * 2015-03-27 2016-09-29 Ca, Inc. Analyzing sorted mobile application operational state sequences based on sequence metrics
US10158709B1 (en) 2015-06-19 2018-12-18 Amazon Technologies, Inc. Identifying data store requests for asynchronous processing
US9715421B2 (en) * 2015-08-25 2017-07-25 Ca, Inc. Wrapped applications providing operational insight to users based on rules for acceptable operational state performance
US9846608B2 (en) * 2015-08-25 2017-12-19 Ca, Inc. Providing application operational insights to users based on crowd sourced performance metrics for operational states
US10108448B2 (en) * 2015-10-27 2018-10-23 International Business Machines Corporation Dynamic SMT
US10733591B2 (en) * 2016-10-11 2020-08-04 International Business Machines Corporation Tiered model for event-based serverless computing
CN108345481B (zh) * 2017-01-22 2023-04-18 腾讯科技(深圳)有限公司 一种页面显示方法、装置、客户端及服务器
CN107957903B (zh) * 2017-11-13 2020-11-10 中国平安财产保险股份有限公司 异步任务调度方法、服务器及存储介质
US11757880B2 (en) * 2018-09-18 2023-09-12 Cyral Inc. Multifactor authentication at a data source
US11477197B2 (en) 2018-09-18 2022-10-18 Cyral Inc. Sidecar architecture for stateless proxying to databases
US11477217B2 (en) 2018-09-18 2022-10-18 Cyral Inc. Intruder detection for a network
JP2020170331A (ja) * 2019-04-03 2020-10-15 富士ゼロックス株式会社 情報処理装置及びプログラム
US11789642B2 (en) * 2021-06-28 2023-10-17 Micron Technology, Inc. Loading data from memory during dispatch
CN116503138B (zh) * 2023-05-04 2023-10-31 杭州妙壹科技有限公司 一种基于异步编程的话费充值订单调度方法与系统

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69132733T2 (de) * 1990-03-19 2002-05-29 Fujitsu Ltd Unterbrechungsverarbeitungssystem
US5329619A (en) * 1992-10-30 1994-07-12 Software Ag Cooperative processing interface and communication broker for heterogeneous computing environments
US5675771A (en) * 1993-09-28 1997-10-07 Bull Hn Information Systems Inc. Mechanism for enabling emulation system users to directly invoke a number of host system facilities for executing host procedures either synchronously or asynchronously in a secure manner through automatically created shell mechanisms
JPH08123699A (ja) * 1994-10-26 1996-05-17 Hitachi Ltd 並行処理方法、並行処理システム及び並行処理用プログラムの変換ツール
US6401005B1 (en) * 1999-09-27 2002-06-04 Rockwell Automation Technologies, Inc. Programmable synchronous and asynchronous block execution for a computer numerical control
US7496924B2 (en) * 2000-03-27 2009-02-24 Siemens Communications, Inc. Dispatching messages among registered software modules in telecommunications system including telephony internet server coupled between packet network and PBX
US20020032692A1 (en) * 2000-09-08 2002-03-14 Atsuhito Suzuki Workflow management method and workflow management system of controlling workflow process
US7099939B2 (en) * 2000-10-03 2006-08-29 Sun Microsystems Inc. HTTP transaction monitor with sequence replay capacity
WO2002054263A1 (fr) * 2000-12-28 2002-07-11 Future System Consulting Corp. Systeme de structure
US7043460B2 (en) * 2001-05-31 2006-05-09 International Business Machines Corporation Web browser-based object oriented application component test client
US7099935B2 (en) * 2001-10-01 2006-08-29 International Business Machines Corporation Dynamically determining whether to process requests synchronously or asynchronously
US7003570B2 (en) 2001-10-05 2006-02-21 Bea Systems, Inc. System for integrating java servlets with asynchronous messages
US6886041B2 (en) * 2001-10-05 2005-04-26 Bea Systems, Inc. System for application server messaging with multiple dispatch pools
US7996507B2 (en) * 2002-01-16 2011-08-09 International Business Machines Corporation Intelligent system control agent for managing jobs on a network by managing a plurality of queues on a client
US20040015762A1 (en) * 2002-07-22 2004-01-22 Finisar Corporation Scalable system testing tools
US7444620B2 (en) * 2003-02-28 2008-10-28 Bea Systems, Inc. Systems and methods for a common runtime container framework
US7568021B2 (en) 2004-05-21 2009-07-28 Intel Corporation Hybrid mode network stack under EFI/Tiano based BIOS in modular computing environment
US8762981B2 (en) * 2004-05-24 2014-06-24 Sap Ag Application loading and visualization
US20060026214A1 (en) * 2004-07-29 2006-02-02 International Business Machines Corporation Switching from synchronous to asynchronous processing
CN1734428A (zh) * 2004-08-02 2006-02-15 微软公司 基于事务性能模型的自动配置
US7779430B2 (en) * 2004-12-15 2010-08-17 International Business Machines Corporation Method, system, and article of manufacture for providing service components
US7716335B2 (en) * 2005-06-27 2010-05-11 Oracle America, Inc. System and method for automated workload characterization of an application server
US9069870B2 (en) 2006-07-12 2015-06-30 International Business Machines Corporation Client-side aggregation of context-sensitive request results where results for aggregation are asynchronously produced by multiple servers
US8131580B2 (en) * 2006-10-04 2012-03-06 Salesforce.Com, Inc. Method and system for load balancing a sales forecast system by selecting a synchronous or asynchronous process based on a type of an event affecting the sales forecast
US8965864B2 (en) * 2006-10-31 2015-02-24 Sap Se Method and system for efficient execution and rendering of client/server interactive applications
US7809988B1 (en) * 2006-12-29 2010-10-05 The Mathworks, Inc. Test environment having synchronous and asynchronous distributed testing
US20080168130A1 (en) 2007-01-09 2008-07-10 Wen-Tzer Thomas Chen Method and system for determining whether to send a synchronous or asynchronous resource request
JP5032219B2 (ja) * 2007-06-29 2012-09-26 株式会社東芝 演算方式を制御して情報を処理する装置、方法およびプログラム
US8032587B2 (en) 2007-08-28 2011-10-04 International Business Machines Corporation Method and apparatus for client-side aggregation of asynchronous fragmented requests
US8136122B2 (en) * 2007-08-30 2012-03-13 Software Ag Systems and/or methods for providing feature-rich proprietary and standards-based triggers via a trigger subsystem
US8185610B2 (en) 2007-12-04 2012-05-22 International Business Machines Corporation Method for client-side aggregation of asynchronous, context-sensitive request operations for java server pages (JSP)
US7499971B1 (en) * 2008-03-24 2009-03-03 International Business Machines Corporation Alternate java server page (JSP) processing for better response time
US8037122B2 (en) * 2008-09-19 2011-10-11 Oracle International Corporation Processing of service-oriented tasks within a grid computing environment
JP5167410B2 (ja) * 2009-01-09 2013-03-21 株式会社日立製作所 複数のマイクロプロセッサを有するストレージシステム、及び、そのストレージシステムにおける処理分担方法

Also Published As

Publication number Publication date
GB2486852B (en) 2013-10-09
US8943196B2 (en) 2015-01-27
JP5963682B2 (ja) 2016-08-03
US20120304177A1 (en) 2012-11-29
DE112011100739T8 (de) 2013-08-29
US8296411B2 (en) 2012-10-23
JP2013521552A (ja) 2013-06-10
CN102782652A (zh) 2012-11-14
CN102782652B (zh) 2015-05-06
GB2486852A (en) 2012-06-27
US20110213829A1 (en) 2011-09-01
GB201206116D0 (en) 2012-05-16
WO2011107415A1 (en) 2011-09-09

Similar Documents

Publication Publication Date Title
DE112011100739T5 (de) Programmatisches Ermitteln eines Ausführungsmodus für eine Anforderungszuteilungunter Verwendung von historischen Masszahlen
DE102015105884B4 (de) Rechenknoten und Verfahren zur Migration einer virtuellen Maschine, Rechenzentrummanager zur Migration virtueller Maschinen, Maschinenlesbares Speichermedium und Rechenvorrichtungen
DE112012004747B4 (de) Verborgenes automatisiertes Spiegeln von Daten für native Schnittstellen in verteilten virtuellen Maschinen
DE112016003249T5 (de) Container-Bereitstellung auf Abhängigkeitsgrundlage
DE102017217971A1 (de) Ermöglichen von Debugging von serverlosen Anwendungen mittels Graph-Rewriting
DE112012004238T5 (de) Auf Erkennung beruhende Identifizierung und Migration von leicht in eine Cloud verlagerbaren Anwendungen
DE102016118210A1 (de) Granulare Dienstqualität für Computer-Ressourcen
DE112010003144T5 (de) Erweiterbare Grundstruktur zur Unterstützung verschiedener Einsatzarchitekturen
DE202015009298U1 (de) Dynamische Anpassung von Shard-Zuweisungen
DE102016205297A1 (de) Festlegen von speicherebenen zum platzieren von datensätzen während des ausführens von aufgaben in einem arbeitsablauf
DE112013000369T5 (de) Verwaltung von Threads innerhalb einer Datenverarbeitungsumgebung
DE112013000656T5 (de) System und Verfahren zum Verringern der Speichernutzung durch optimales Platzieren von virtuellen Maschinen in einem virtualisierten Rechenzentrum
DE112011100094T5 (de) Verfahren und System zum Abstrahieren eines auf nichtfunktionalen Anforderungen beruhenden Einsatzes von virtuellen Maschinen
DE112012004336T5 (de) System, Verfahren und Programmprodukt für kostenbewusste Auswahl von Vorlagen zum Bereitstellen von gemeinsam genutzten Ressourcen
DE112010005096T5 (de) Verfahren und Vorrichtungen zum Bewerten der Ressourcen-Kapazität in einem System von virtuellen Containern
DE112013002995T5 (de) Echtzeitmessung von Virtualisierungs-E/A-Verarbeitungsverzögerungen
DE112019000421B4 (de) Arbeitslastverwaltung mit datenzugriffserkennung in einem datenverarbeitungscluster
DE112012002545T5 (de) Verwalten von Arbeitslasten in einem Mehrprozessor-Computersystem
DE102013105848A1 (de) Vorri chtung und Verfahren zum Unterstützen eines Tests eines Anwendungsdienstes unter Verwendung mehrerer Clouds
DE112017001376T5 (de) Erkennen und Vorhersagen von Engpässen in komplexen Systemen
DE112011103406T5 (de) Verwaltung von nicht geänderten Objekten
DE112011105098T5 (de) Virtuelles BIOS
DE102021130957A1 (de) Empfehlungen zur stabilität von software-aktualisierungen
DE112015004564T5 (de) Ereignisgesteuerte Reoptimierung einer logisch partitionierten Umgebung zur Energieverwaltung
DE112011101759B4 (de) Sampling von Leerlauftransitionen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0009460000

Ipc: G06F0015160000

R016 Response to examination communication
R084 Declaration of willingness to licence