DE112012004776T5 - Erzeugen einer Produktionsserver-Lastaktivität für einen Testserver - Google Patents

Erzeugen einer Produktionsserver-Lastaktivität für einen Testserver Download PDF

Info

Publication number
DE112012004776T5
DE112012004776T5 DE112012004776.1T DE112012004776T DE112012004776T5 DE 112012004776 T5 DE112012004776 T5 DE 112012004776T5 DE 112012004776 T DE112012004776 T DE 112012004776T DE 112012004776 T5 DE112012004776 T5 DE 112012004776T5
Authority
DE
Germany
Prior art keywords
production
server
replicated
client requests
load
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.)
Pending
Application number
DE112012004776.1T
Other languages
English (en)
Inventor
c/o IBM Corp. Smith Richard John
c/o IBM Corp. Williams Gary Dale
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 DE112012004776T5 publication Critical patent/DE112012004776T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3612Software analysis for verifying properties of programs by runtime analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • 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
    • 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/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Environmental & Geological Engineering (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

Ein Verfahren zum Nachbilden einer Produktionslast eines Produktionsservers in einem Testserver enthält Erzeugen der Produktionslast in dem Produktionsserver durch Verarbeiten von Client-Anforderungen, die von Clients empfangen werden. Während die Client-Anforderungen über einen Prozessor in Echtzeit verarbeitet werden, wird die Produktionslast nachgebildet, um eine nachgebildete Produktionslast zu erzeugen, die die Client-Anforderungen repräsentiert und Zustandsinformationen definiert, die eindeutige Zustände repräsentieren, die zwischen dem Produktionsserver und den entsprechenden Clients gebildet werden. Das Verfahren enthält außerdem Übertragen der nachgebildeten Produktionslast in Echtzeit, um die Produktionslast in dem Testserver nachzubilden.

Description

  • HINTERGRUND
  • Die vorliegende Erfindung bezieht sich allgemein auf das Testen von Produktionsservern.
  • Bei einem Produktionsserver handelt es sich um einen Server, der eine oder mehrere aktive Anwendungen beherbergt, auf die von Clients über ein Datenübertragungsnetzwerk wie etwa ein Intranet oder das Internet zugegriffen werden kann. Ein Produktionsserver beherbergt üblicherweise die neueste Version seiner entsprechenden Anwendung(en). Vor einem Verlagern einer Anwendung oder einer aktualisierten Version der Anwendung zu einem Produktionsserver, um aktiv zu werden, kann die Anwendung während der Entwicklung von einem Bereitstellungsserver beherbergt werden. Während einer Ausführung auf dem Bereitstellungsserver steht die Anwendung üblicherweise lediglich Entwicklern oder Benutzern zur Verfügung, die gebeten werden, die Funktionalität der Anwendung zu testen. Demzufolge stellt der Bereitstellungsserver eine Plattform bereit, auf der die Anwendung getestet werden kann, bevor sie aktiv wird.
  • KURZDARSTELLUNG
  • Gemäß einem ersten Aspekt der Erfindung wird ein Verfahren bereitgestellt, um eine Produktionslast eines Produktionsservers auf einem Testserver nachzubilden. Das Verfahren beinhaltet Erzeugen der Produktionslast an dem Produktionsserver durch Verarbeiten von Client-Anforderungen, die von Clients empfangen werden. Das Verfahren beinhaltet ferner Nachbilden der Produktionslast in Echtzeit über einen Prozessor, während die Client-Anforderungen verarbeitet werden, um eine nachgebildete Produktionslast zu erzeugen, die die Client-Anforderungen repräsentiert und Zustandsinformationen definiert, die eindeutige Zustände repräsentieren, die zwischen dem Produktionsserver und den entsprechenden Clients gebildet werden. Das Verfahren beinhaltet außerdem Kommunizieren der nachgebildeten Produktionslast in Echtzeit, um die Produktionslast auf dem Testserver nachzubilden.
  • Ein weiterer Aspekt beinhaltet ein Verfahren zum Nachbilden einer Produktionslast eines Produktionsservers auf einem Testserver. Das Verfahren beinhaltet Empfangen einer nachgebildeten Produktionslast, die einer Produktionslast an dem Produktionsserver entspricht, die durch Verarbeiten von Client-Anforderungen erzeugt wird. Die nachgebildete Produktionslast wird in Echtzeit erzeugt, während die Client-Anforderungen durch den Produktionsserver verarbeitet werden. Die Nachbildungs-Produktionslast definiert außerdem Zustandsinformationen, die eindeutige Zustände repräsentieren, die zwischen dem Produktionsserver und den Clients gebildet werden, von denen die Client-Anforderungen empfangen werden. In Reaktion auf ein Empfangen der nachgebildeten Produktionslast wird die nachgebildete Produktionslast in Echtzeit über einen Prozessor verarbeitet, um eine Vielzahl von nachgebildeten Client-Anforderungen zu erzeugen. Jede von den nachgebildeten Client-Anforderungen bildet eine entsprechende Client-Anforderung nach, die durch den Produktionsserver empfangen wurde, und wenigstens ein Abschnitt der nachgebildeten Client-Anforderungen definiert die Zustandsinformationen, die dem entsprechenden Client zugehörig sind, von dem die Client-Anforderung empfangen wird. Das Verfahren beinhaltet ferner Übertragen der nachgebildeten Client-Anforderungen in Echtzeit an den Testserver.
  • Eine weitere Ausführungsform kann ein Computerprogrammprodukt enthalten, um eine Produktionslast eines Produktionsservers auf einem Testserver nachzubilden. Das Computerprogrammprodukt kann einen computerlesbaren Programmcode enthalten, der darin verkörpert ist, wobei der computerlesbare Programmcode so eingerichtet ist, dass er die verschiedenen Operationen und/oder Funktionen, die in dieser Spezifikation offenbart werden, ausführt.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Ausführungsformen der vorliegenden Erfindung werden nun lediglich beispielhaft und unter Bezugnahme auf die beigefügten Zeichnungen beschrieben, in denen:
  • 1 ein Funktionsschaubild ist, das ein System zum Nachbilden einer Produktionslast eines Produktionsservers auf einem Testserver gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht,
  • 2 ein Blockschaltplan ist, der ein Verarbeitungssystem gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht,
  • 3 ein Ablaufplan ist, der ein Verfahren zum Nachbilden einer Produktionslast eines Produktionsservers auf einem Testserver gemäß einer weiteren Ausführungsform der vorliegenden Erfindung veranschaulicht,
  • 4 ein Ablaufplan ist, der ein Verfahren zum Erzeugen einer Nachricht einer nachgebildeten Produktionslast gemäß einer weiteren Ausführungsform der vorliegenden Erfindung veranschaulicht,
  • 5 ein Ablaufplan ist, der ein weiteres Verfahren zum Nachbilden einer Produktionslast eines Produktionsservers auf einem Testserver gemäß einer weiteren Ausführungsform der vorliegenden Erfindung veranschaulicht, und
  • 6 ein Ablaufplan ist, der ein Verfahren zum Verarbeiten einer nachgebildeten Client-Anforderung auf dem Testserver gemäß einer weiteren Ausführungsform der vorliegenden Erfindung veranschaulicht.
  • GENAUE BESCHREIBUNG
  • Einem Fachmann ist klar, dass Aspekte der vorliegenden Erfindung als System, Verfahren oder Computerprogrammprodukt verkörpert werden können. Dementsprechend können Aspekte der vorliegenden Erfindung die Form einer reinen Hardware-Ausführungsform, einer reinen Software-Ausführungsform (darunter Firmware, residente Software, Mikrocode usw.) oder einer Ausführungsform, die Software- und Hardware-Aspekte kombiniert, annehmen, die hier alle als ”Schaltung”, ”Modul” oder ”System” bezeichnet werden können. Des Weiteren können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien verkörpert wird und beispielsweise darin gespeichert ist, die computerlesbaren Programmcode aufweisen, der darin ausgeführt wird.
  • Jede Kombination aus einem oder mehreren computerlesbaren Medien kann genutzt werden. Bei dem computerlesbaren Medium kann es sich um ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium handeln. Ein computerlesbares Speichermedium kann z. B. ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, -vorrichtung oder -einheit oder jede geeignete Kombination des Vorhergehenden sein, ist jedoch nicht darauf beschränkt. Zu spezifischeren Beispielen (eine nicht erschöpfende Liste) des computerlesbaren Speichermediums würde Folgendes gehören: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, ein Festplattenlaufwerk (HDD), ein Halbleiterlaufwerk (SSD), ein Direktzugriffsspeicher (RAM), ein Festwertspeicher (ROM), ein löschbarer programmierbarer Festwertspeicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Compactdisk-Festwertspeicher (CD-ROM), eine Digital Versatile Disk (DVD), eine optische Speichereinheit, eine magnetische Speichereinheit oder jede geeignete Kombination des Vorhergehenden. Im Kontext dieses Dokuments kann ein computerlesbares Speichermedium jedes materielle Medium sein, das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Befehlsausführung enthalten oder speichern kann.
  • Ein computerlesbares Signalmedium kann ein sich ausbreitendes Datensignal mit computerlesbarem Programmcode enthalten, der darin z. B. im Basisband oder als Teil einer Trägerwelle verkörpert wird. Ein derartiges sich ausbreitendes Signal kann jede von einer Vielfalt von Formen annehmen, zu denen elektromagnetische, optische Formen oder jede geeignete Kombination hiervon gehören, jedoch nicht darauf beschränkt sind. Ein computerlesbares Signalmedium kann jedes computerlesbare Medium sein, das kein computerlesbares Speichermedium ist und ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Befehlsausführung kommunizieren, verbreiten oder transportieren kann.
  • Programmcode, der auf einem computerlesbaren Medium verkörpert ist, kann unter Verwendung jedes geeigneten Mediums übertragen werden, darunter drahtlose, leitungsgestützte, Lichtwellenleiterkabel-, Hochfrequenz-(HF-)Medien usw. oder jede geeignete Kombination aus dem Vorhergehenden, ohne darauf beschränkt zu sein. Computerprogrammcode zum Ausführen von Operationen für Aspekte der vorliegenden Erfindung kann in jeder Kombination aus einer oder mehreren Programmiersprachen geschrieben sein, darunter eine objektorientierte Programmiersprache wie JavaTM, Smalltalk, C++ oder dergleichen und herkömmliche prozedurale Programmiersprachen wie etwa die Programmiersprache ”C” oder ähnliche Programmiersprachen. Der Programmcode kann nur auf dem Computer eines Benutzers, teilweise auf dem Computer eines Benutzers, als ein eigenständiges Software-Paket, teilweise auf dem Computer eines Benutzers und teilweise auf einem fernen Computer oder nur auf dem fernen Computer oder Server ausgeführt werden. In dem zuletzt genannten Szenario kann der ferne Computer mit dem Computer des Benutzers durch jeden Netzwerktyp verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann zu einem externen Computer (z. B. über das Internet unter Verwendung eines Internet-Dienstanbieters) hergestellt werden.
  • Aspekte der vorliegenden Erfindung werden hier unter Bezugnahme auf Ablaufplan-Darstellungen und/oder Blockschaltbilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es ist klar, dass jeder Block der Ablaufplan-Darstellungen und/oder Blockschaltbilder und Kombinationen von Blöcken in den Ablaufplan-Darstellungen und/oder Blockschaltbildern durch Computerprogrammbefehle umgesetzt werden können. Diese Computerprogrammbefehle können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu bilden, so dass Befehle, die über den Prozessor des Computers, der anderen programmierbaren Datenverarbeitungsvorrichtung oder anderer Einheiten ausgeführt werden, Mittel zum Umsetzen der Funktionen/Wirkungen, die in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaltbilds spezifiziert sind, erzeugen.
  • Diese Computerprogrammbefehle können außerdem in einem computerlesbaren Medium gespeichert sein, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten anweisen kann, in einer bestimmten Weise zu funktionieren, so dass die in dem computerlesbaren Medium gespeicherten Befehle einen Herstellungsgegenstand produzieren, der Befehle enthält, die die Funktion/Wirkung umsetzen, die in dem Block/den Blöcken des Ablaufplans und/oder Blockschaltbilds spezifiziert sind.
  • Computerprogrammbefehle können außerdem in einen Computer, andere programmierbare Datenverarbeitungsvorrichtungen oder andere Einheiten geladen werden, um eine Reihe von Operationsschritten zu bewirken, die auf dem Computer, der anderen programmierbaren Datenverarbeitungsvorrichtung oder anderen Einheiten ausgeführt werden sollen, um einen durch einen Computer umgesetzten Prozess zu erzeugen, so dass die Befehle, die auf dem Computer oder der anderen programmierbaren Vorrichtung ausgeführt werden, Prozesse zum Umsetzen der Funktionen/Wirkungen, die in dem Block oder Blöcken des Ablaufplans und/oder Blockschaltbilds spezifiziert sind, bereitstellen.
  • Mehrere Definitionen, die in diesem Dokument durchgängig gelten, werden im Folgenden präsentiert. Der hier verwendete Ausdruck „Echtzeit” bezeichnet ein Maß des Antwortverhaltens der Verarbeitung, das ein Benutzer oder ein System für einen bestimmten Prozess oder eine Feststellung, die getroffen werden soll, als in ausreichendem Maße als unmittelbar empfindet, oder das ermöglicht, dass der Prozessor mit einem bestimmten externen Prozess Schritt hält.
  • Der hier verwendete Ausdruck „Produktionsserver” bezeichnet ein Verarbeitungssystem, das wenigstens einen Prozessor enthält und eine oder mehrere aktive Anwendungen beherbergt, auf die über ein Datenübertragungsnetzwerk zugegriffen werden kann. Eine Anwendung, die aktiv bleibt, bedeutet in diesem Zusammenhang eine Anwendung, die funktionsfähig ist, um Clients über ein Datenübertragungsnetzwerk wie etwa ein Intranet oder das Internet in der vorgesehenen Weise zu dienen. Der hier verwendete Ausdruck „Testserver” bezeichnet ein Verarbeitungssystem, das wenigstens einen Prozessor aufweist und eine oder mehrere Anwendungen für den Zweck des Testens dieser Anwendung(en) beherbergt. Der hier verwendete Ausdruck „Zwischenserver” bezeichnet ein Verarbeitungssystem, das wenigstens einen Prozessor enthält, der Daten von einem Produktionsserver empfängt und entsprechende Daten zu einem Testserver überträgt.
  • Der hier verwendete Ausdruck „Client” bezeichnet ein Verarbeitungssystem, das wenigstens einen Prozessor aufweist und Client-Anforderungen erzeugt, die zu einem Produktionsserver übertragen werden. Der hier verwendete Ausdruck „Client-Anforderung” bezeichnet eine Nachricht, die fordert, dass eine bestimmte Aktion durch einen Produktionsserver ausgeführt wird. Eine Client-Anforderung kann beispielsweise fordern, dass Informationen abgerufen oder verarbeitet werden. Der hier verwendete Ausdruck „Produktionslast” bezieht sich auf diskrete, unabhängig bedeutsame Einheiten, die als „Produktionslasteinheiten” bezeichnet werden. Bei einer Ausführungsform kann jede Produktionslasteinheit einer separaten Client-Anforderung entsprechen.
  • Ausführungsformen, die hier beschrieben werden, beziehen sich auf ein Nachbilden einer Produktionslast eines Produktionsservers in einem Testserver. Während der Produktionsserver eine oder mehrere aktive Anwendungen beherbergt, kann der Produktionsserver Client-Anforderungen von einem oder mehreren Clients empfangen, um auf die aktive(n) Anwendung(en) zuzugreifen. Der Produktionsserver kann derartige Client-Anwendungen verarbeiten und Antworten auf die Client-Anforderungen erzeugen, wobei somit eine Produktionslast auf dem Produktionsserver erzeugt wird. Wenn die Client-Anforderungen durch den Produktionsserver verarbeitet werden, kann die durch die Client-Anforderungen repräsentierte Produktionslast nachgebildet werden, um eine nachgebildete Produktionslast zu erzeugen. Die nachgebildete Produktionslast repräsentiert die Client-Anforderungen. Die nachgebildete Produktionslast kann des Weiteren Zustandsinformationen definieren, die eindeutige Zustände repräsentieren, die zwischen dem Produktionsserver und den Clients gebildet werden, von denen die identifizierten Client-Anforderungen empfangen werden.
  • Die nachgebildete Produktionslast kann zu einem Verteiler-Proxy übertragen werden, der die nachgebildete Produktionslast verarbeiten kann, um nachgebildete Client-Anforderungen zu erzeugen. Jede nachgebildete Client-Anforderung kann eine entsprechende Client-Anforderung, die durch den Produktionsserver empfangen wird, sowie die Zustandsinformationen nachbilden, die der entsprechenden Client-Anforderung zugehörig sind. Der Verteiler-Proxy kann die nachgebildeten Client-Anforderungen zu dem Testserver senden.
  • Der Testserver kann eine oder mehrere Kopien von Anwendungen beherbergen, die durch den Produktionsserver beherbergt werden, die die nachgebildeten Client-Anforderungen verarbeiten können. Eine derartige Verarbeitung kann durch eine Analyse-Anwendung überwacht werden, um Fehler zu identifizieren, die in der Anwendung (den Anwendungen) gelegentlich als „Bugs” bezeichnet werden, oder um die Leistungsfähigkeit einer Testversion einer Anwendung mit einer Produktionsversion der Anwendung zu vergleichen. In diesem Zusammenhang können die Kopien der Anwendungen, die von dem Testserver beherbergt werden, mit Code instrumentiert werden, um eine derartige Analyse zu erleichtern. Die oben erwähnten Prozesse können insbesondere in Echtzeit ausgeführt werden und können so lange wie gewünscht fortgesetzt werden. Dementsprechend können die von dem Produktionsserver beherbergten Anwendungen analysiert werden, während die Produktionsanwendungen aktiv bleiben. Somit muss der Produktionsserver nicht offline geschaltet werden, um die Analyse auszuführen, und kann weiterhin Clients dienen. Darüber hinaus kann die Analyse unter Verwendung derselben aktiven Bedingungen ausgeführt werden, denen der Produktionsserver ausgesetzt ist. Diese Bedingungen können sich zeitlich ändern, wobei derartige Änderungen in dem Testserver nachgebildet werden können.
  • 1 ist ein Funktionsschaubild, das ein System 100 zum Nachbilden einer Produktionslast eines Produktionsservers auf einem Testserver gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht. In diesem Zusammenhang kann das System einen oder mehrere Clients 110, einen Produktionsserver 120, einen Testserver 140 und wahlweise einen Zwischenserver 140 enthalten.
  • Der Produktionsserver 120 kann eine oder mehreren Anwendungen 122 beherbergen (z. B. ausführen). Zu Beispielen einer Anwendung 122 gehören eine Website, ein Lightweight-Directory-Access-Protocol-(LDAP-)Server, eine Datenbank, eine webgestützte Anwendung, eine netzwerkgestützte Anwendung und dergleichen, ohne auf diese beschränkt zu sein. Der Produktionsserver 120 kann außerdem eine Prüf-Einrichtung 124 beherbergen, die hier genauer beschrieben wird. Bei einer Ausführungsform kann der Zwischenserver 130 einen Verteiler-Proxy 132 beherbergen, der ebenfalls hier genauer beschrieben wird. Bei einer weiteren Ausführungsform kann der Verteiler-Proxy 132 in dem Testserver 140 beherbergt werden.
  • Der Testserver 140 kann eine oder mehrere Host-Anwendungen 142 und eine Analyse-Anwendung 144 beherbergen. Bei der bzw. den Anwendungen 142 kann es sich um eine bzw. mehrere Kopien von Anwendungen 122 handeln, die in dem Produktionsserver 120 beherbergt werden, die durch die Analyse-Anwendung 144 zu analysieren sind. Bei einer Anwendung 142 kann es sich um dieselbe Version handeln wie bei einer entsprechenden Anwendung 122, wenn beispielsweise die Anwendung in Bezug auf mögliche Defekte analysiert wird, oder es kann sich bei der Anwendung 142 um eine andere Version als bei der Anwendung 122 handeln, wenn beispielsweise Leistungsverbesserungen an der Anwendung getestet werden. In diesem Zusammenhang können die Anwendung(en) 142 als ein oder mehrere Computerprogramme betrachtet werden, die getestet werden. Im Folgenden kann auf eine Anwendung 122 und/oder eine Anwendung 142 Bezug genommen werden, es ist jedoch klar, dass eine derartige Bezugnahme eine Vielzahl der entsprechenden Anwendungen 122 und/oder Anwendungen 142 betreffen kann.
  • Die Clients 110 können mit dem Produktionsserver 120 zum Zweck des Datenaustauschs verbunden sein, der Produktionsserver kann mit dem Zwischenserver 130 zum Zweck des Datenaustauschs verbunden sein und der Zwischenserver 130 kann mit dem Testserver 130 zum Zweck des Datenaustauschs verbunden sein. Bei einer Anordnung, bei der der Verteiler-Proxy 132 von dem Testserver 140 beherbergt ist, kann der Produktionsserver 120 mit dem Testserver 140 anstelle des Zwischenservers 130 zum Zweck des Datenaustauschs verbunden sein. Ein oder mehrere Netzwerke können genutzt werden, um derartige Datenübertragungsverbindungen bereitzustellen. Zu den Netzwerken können öffentliche Netzwerke, z. B. das Internet, und/oder private Netzwerke wie etwa LANs, WANs oder dergleichen gehören.
  • Im Betrieb kann der Produktionsserver 120 funktionsfähig sein und die Anwendung 122 ausführen, um die Clients 110 zu bedienen. Der Produktionsserver 120 kann eine Vielzahl von Client-Anforderungen 112 von den Clients 110 empfangen und identifizieren, die an die Anwendung 122 gerichtet sind. Die Anwendung 122 kann die Client-Anforderungen 112 verarbeiten und in einer Weise, die für die Anwendung 122 üblich ist, Antworten 114 an die Clients 110 zurückgeben. Wenn die Client-Anforderungen 112 durch den Produktionsserver 120 in Echtzeit empfangen werden, kann die Prüf-Einrichtung 124 Prüf-Datensätze erzeugen, die den Client-Anforderungen 112 entsprechen, und die Prüf-Datensätze in einem Prüf-Protokoll 126 speichern. Die Prüf-Einrichtung 124 kann des Weiteren eine Nachricht erzeugen, die sich auf eine bestimmte Client-Anforderung 112 bezieht.
  • Die Prüf-Einrichtung 124 kann die Nachricht zu dem Verteiler-Proxy 132 übertragen. Wenn der Verteiler-Proxy 132 von dem Zwischenserver 130 beherbergt wird, kann die Nachricht zu dem Zwischenserver 130 gesendet werden. Wenn der Verteiler-Proxy 132 von dem Testserver 140 beherbergt wird, kann die Nachricht zu dem Testserver 140 gesendet werden. Während des normalen Betriebs kann der Produktionsserver 120 eine Vielzahl von Client-Anforderungen 112 empfangen, und die Prüf-Einrichtung kann eine Vielzahl von entsprechenden Nachrichten erzeugen und übertragen, von denen jede eine Produktionslasteinheit repräsentiert. Die Vielzahl derartiger Nachrichten kann gemeinsam die Produktionslast des Produktionsservers 120 nachbilden, und sie werden hier daher gemeinsam als eine nachgebildete Produktionslast 128 bezeichnet.
  • Jede Nachricht kann spezielle Informationen enthalten, die eine bestimmte Client-Anforderung 112 betreffen, z. B. eine Aktion oder Aktionen, die von der Anwendung 122 oder anderen Prozessen in dem Produktionsserver 120 gefordert werden. Des Weiteren kann jede Nachricht Zustandsinformationen enthalten, die einen eindeutigen Zustand repräsentieren, der zwischen dem Produktionsserver 120 und dem Client 110 gebildet wird, von dem die Client-Anforderung 112 empfangen wird. Zu derartigen Zustandsinformationen können z. B. gehören: eine Verbindungskennung für die Socket-Verbindung, über die die Client-Anforderung 112 empfangen wurde, ein oder mehrere Cookies, die der Client-Anforderung 112 zugehörig sind, auf der Grundlage einer vorherigen Nutzung des Produktionsservers 120 durch den Client 110, Page-Dienste, die dem Client 110 bereitgestellt werden, Verbindungsroutinen, die dem Client 110 zugehörig sind, Bindungsinformationen, die dem Client 110 entsprechen (z. B. Benutzername und/oder Passwort) und/oder alle weiteren Informationen, die einen eindeutigen Zustand repräsentieren, der zwischen dem Produktionsserver 120 und dem Client 110 gebildet wird.
  • Wenn der Verteiler-Proxy 132 die Nachrichten in Echtzeit empfängt, kann der Verteiler-Proxy 132 Daten aus jeder Nachricht einer Syntaxprüfung unterziehen und eine nachgebildete Client-Anforderung 134 erzeugen, die der Client-Anforderung 112 entspricht, auf der die Nachricht beruht. Jede nachgebildete Client-Anforderung 134 kann die speziellen Informationen, die ihre entsprechende Client-Anforderung 112 betreffen, sowie die Zustandsinformationen enthalten, die den eindeutigen Zustand repräsentieren, der zwischen dem Produktionsserver 120 und dem Client 110 gebildet wird, von dem die Client-Anforderung 112 empfangen wurde.
  • Bei einer Ausführungsform kann der Verteiler-Proxy 112 die Nachrichten der nachgebildeten Produktionslast 128 filtern, um Client-Anforderungen 112 zu filtern, die unter Verwendung der nachgebildeten Client-Anforderungen 134 für den Testserver 140 nachgebildet werden. Bei einer weiteren Ausführungsform können die Prüf-Datensätze und somit die Client-Anforderungen 112 selektiv gefiltert werden, um einen Teil der Client-Anforderungen 112 zu identifizieren, für die entsprechende Nachrichten erzeugt werden. Nachrichten, die z. B. Client-Anforderungen 112 entsprechen, die bestimmten Benutzern oder Passwörtern zugehörig sind, können ignoriert werden, oder Nachrichten, die bestimmten Typen von Client-Anforderungen 112 entsprechen, können ignoriert werden, wobei entsprechende nachgebildete Client-Anforderungen 134 nicht erzeugt werden müssen. Des Weiteren kann das selektive Filtern Nachrichten identifizieren, die bestimmten Typen von Client-Anforderungen 112 entsprechen, die zu verarbeiten sind, um die nachgebildeten Client-Anforderungen 134 zu erzeugen. Beispielsweise können lediglich Client-Anforderungen 112 nachgebildet werden, die LDAP-Verzeichnis- oder Datenbank-Suchvorgänge betreffen.
  • Wenn eine bestimmte Nachricht einer Client-Anforderung 112 entspricht, die fordert, dass eine Socket-Verbindung (Produktions-Socket-Verbindung) für einen entsprechenden Client 110 durch den Produktionsserver 120 aufgebaut wird, kann die entsprechende nachgebildete Client-Anforderung 134 fordern, dass eine Socket-Verbindung (Test-Socket-Verbindung) durch den Testserver 140 aufgebaut wird. Die Kennung der Test-Socket-Verbindung, die erzeugt wird, ist möglicherweise nicht dieselbe Kennung, die für die Produktions-Socket-Verbindung erzeugt wird. Der Verteiler-Proxy 132 kann trotzdem eine Zuordnung zwischen den entsprechenden Kennungen erzeugen und diese Zuordnung in einer Zuordnungstabelle speichern. Auf der Grundlage der Zuordnung kann der Verteiler-Proxy 132 die Produktions-Socket-Verbindung der Test-Socket-Verbindung zuordnen. Wenn demzufolge eine Vielzahl von Client-Anforderungen 112 dem Produktionsserver 120 über eine bestimmte Produktions-Socket-Verbindung bereitgestellt wird, kann der Verteiler-Proxy 132 sicherstellen, dass ihre entsprechenden nachgebildeten Client-Anforderungen 134 über dieselbe Test-Socket-Verbindung gesendet werden.
  • Wenn jede nachgebildete Client-Anforderung 134 erzeugt wird, kann der Verteiler-Proxy die nachgebildete Client-Anforderung 134 in Echtzeit zu dem Testserver 140 übertragen, der die nachgebildete Client-Anforderung zu der Anwendung 142 leiten kann. Die nachgebildete Client-Anforderung 134 kann gemäß einem Protokoll formatiert sein, das für die Anwendung 142 verständlich ist. Wenn beispielsweise eine bestimmte Client-Anforderung 112 gemäß LDAP formatiert ist, kann die entsprechende nachgebildete Client-Anforderung 134 gemäß LDAP formatiert sein. Dabei handelt es sich lediglich um ein Beispiel eines Formats der Client-Anforderung, und die Erfindung ist in dieser Hinsicht nicht beschränkt. Die Anwendung 122 kann die nachgebildeten Client-Anforderungen 134 verarbeiten und nachgebildete Antworten 136 in einer Weise, die für die Anwendung 122 üblich ist, an den Verteiler-Proxy 132 zurückgeben.
  • Wenn die Anwendung 142 die nachgebildeten Client-Anforderungen 134 verarbeitet, kann die Analyse-Anwendung die Ausführung der Anwendung 142 analysieren, um Defekte zu identifizieren, die möglicherweise in dem Code der Anwendung 142 vorhanden sind, oder um die Leistungsfähigkeit der Anwendung 142 zu analysieren. Die Anwendung 142 kann beispielsweise mit Programmcode instrumentiert werden, um Ereignisse zu erzeugen, wenn die Anwendung 142 ausgeführt wird, und derartige Ereignisse können durch die Analyse-Anwendung 144 erkannt werden. Eine Anwendungs-Instrumentierung und Analyse-Anwendungen sind Fachleuten bekannt.
  • 2 ist ein Blockschaltplan, der ein Beispiel eines Verarbeitungssystems 200 gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht. Bei dem Verarbeitungssystem 200 kann es sich um einen Client, einen Produktionsserver, einen Zwischenserver oder einen Testserver handeln. Das Verarbeitungssystem 200 kann wenigstens einen Prozessor 205 enthalten, der über einen Systembus 215 mit Speicherelementen 210 verbunden ist. Daher kann das Verarbeitungssystem 200 Programmcode in den Speicherelementen 210 speichern. Der Prozessor 205 kann den Programmcode ausführen, auf den über den Systembus 215 in den Speicherelementen 210 zugegriffen werden kann. Bei einem Aspekt kann z. B. das Verarbeitungssystem 200 als ein Computer umgesetzt werden, der in der Lage ist, Programmcode zu speichern und/oder auszuführen. Es sollte jedoch klar sein, dass das Verarbeitungssystem 200 in Form eines beliebigen Systems umgesetzt werden kann, das einen Prozessor und einen Speicher aufweist und in der Lage ist, die in dieser Spezifikation beschriebenen Funktionen auszuführen.
  • Zu den Speicherelementen 210 können ein oder mehrere physische Speichereinheiten gehören wie z. B. ein lokaler Speicher 220 und ein oder mehrere Massenspeichereinheiten 225. Als lokaler Speicher 220 werden ein Direktzugriffsspeicher oder andere nichtdauerhafte Speichereinheit(en) bezeichnet, die im Allgemeinen während der eigentlichen Ausführung des Programmcode verwendet werden. Die Massenspeichereinheit(en) 225 können als HDD, SDD oder andere dauerhafte Datenspeichereinheiten umgesetzt werden. Das Verarbeitungssystem 200 kann außerdem einen oder mehrere Cache-Speicher (nicht gezeigt) enthalten, die eine vorübergehende Speicherung wenigstens eines Teils der Programmcode gewährleisten, um die Häufigkeit zu vermindern, wie oft Programmcode während der Ausführung von der Massenspeichereinheit 225 abgerufen werden muss.
  • Ein oder mehrere Netzwerkadapter 230 können mit dem Verarbeitungssystem 200 entweder direkt mit dem Systembus 215 oder über dazwischenliegende E/A-Steuereinheiten verbunden sein, damit das Verarbeitungssystem 200 mit anderen Systemen, Computersystemen, fernen Druckern und/oder fernen Speichereinheiten über private oder öffentliche Netzwerke verbunden werden kann. Modems, Kabel-Modems, Ethernet-Karten-Drahtlos-Netzwerkadapter sind Beispiele von unterschiedlichen Typen von Netzwerkadaptern, die bei dem Verarbeitungssystem 200 verwendet werden können, wobei die Erfindung in dieser Hinsicht nicht beschränkt ist. Weitere E/A-Einheiten (nicht gezeigt) können außerdem mit dem Verarbeitungssystem 200 verbunden werden.
  • Beispielhaft und nicht als Einschränkung können ein oder mehrere Programme/Dienstprogramme 240, von denen jedes eine Gruppe (wenigstens ein) von Programmmodulen 242 aufweist, sowie ein Betriebssystem, ein oder mehrere Anwendungsprogramme, weitere Programmmodule und Programmdaten in den Speicherelementen 210 gespeichert werden. Programmmodule 142 führen im Allgemeinen die Funktionen und/oder Methodiken von Ausführungsformen der hier beschriebenen Erfindung aus.
  • Wenn es sich bei dem Verarbeitungssystem 200 um den Produktionsserver 120 von 1 handelt, können die Programme/Dienstprogramme 240 in der Darstellung die Anwendung(en) 122 und die Prüf-Einrichtung 124 enthalten. Das Prüf-Protokoll 126 kann außerdem in den Speicherelementen 210 gespeichert werden. Wenn es sich bei dem Verarbeitungssystem 200 um den Zwischenserver 130 von 1 handelt, können die Programme/Dienstprogramme 240 den Verteiler-Proxy 132 enthalten. Wenn es sich bei dem Verarbeitungssystem 200 um den Testserver 140 von 1 handelt, können die Programme/Dienstprogramme 240 die Anwendung(en) 142, die Analyseanwendung 144 und wahlweise den Verteiler-Proxy 132 enthalten (wenn der Zwischenserver 130 nicht verwendet wird).
  • 3 ist ein Ablaufplan, der ein Verfahren 300 zum Nachbilden einer Produktionslast eines Produktionsservers in einem Testserver gemäß einer weiteren Ausführungsform der vorliegenden Erfindung veranschaulicht. Das Verfahren 300 kann durch die Prüf-Einrichtung 124 von 1 umgesetzt werden. Im Schritt 302 kann eine Produktionslast in einem Produktionsserver durch Verarbeiten von Client-Anforderungen erzeugt werden, die von Clients empfangen werden. Während die Client-Anforderungen in Echtzeit verarbeitet werden, kann im Schritt 304 die Produktionslast nachgebildet werden, um eine nachgebildete Produktionslast zu erzeugen, die die identifizierten Client-Anforderungen repräsentiert und Zustandsinformationen definiert, die eindeutige Zustände repräsentieren, die zwischen dem Produktionsserver und den entsprechenden Clients gebildet werden. Im Schritt 306 können entsprechende Produktions-Socket-Verbindungen identifiziert werden, über die eine Vielzahl der Client-Anforderungen von den entsprechenden Clients zu dem Produktionsserver übertragen werden. Im Schritt 308 können die Produktions-Socket-Verbindungen der nachgebildeten Produktionslast zugeordnet werden. Im Schritt 310 kann die nachgebildete Produktionslast in Echtzeit übertragen werden, um die Produktionslast in dem Testserver nachzubilden. Die nachgebildete Produktionslast kann z. B. zu dem Verteiler-Proxy 132 von 1 übertragen werden.
  • 4 ist ein Ablaufplan, der ein Verfahren 400 zum Erzeugen einer Nachricht über eine nachgebildete Produktionslast gemäß einer weiteren Ausführungsform der vorliegenden Erfindung veranschaulicht. Das Verfahren 400 kann wiederum durch die Prüf-Einrichtung 124 von 1 umgesetzt werden.
  • Im Schritt 402 kann Speicherplatz für erste Datenstrukturen für Client-Anforderungsdaten zugewiesen werden. Im Schritt 404 kann Speicherplatz für zweite Datenstrukturen für einen Verteiler-Proxy-Datensatz zugewiesen werden. Im Schritt 406 kann eine Client-Anforderung durch den Produktionsserver empfangen werden, und die Prüf-Einrichtung kann die Client-Anforderungsdaten in einen ersten Prüf-Protokoll-Datensatz eintragen. Im Schritt 408 kann die Prüf-Einrichtung Zustandsinformationen abrufen, die der Client-Anforderung zugehörig sind, und die Zustandsinformationen wie auch die Client-Anforderungsdaten in einen zweiten Prüf-Protokoll-Datensatz eintragen. Im Schritt 410 kann die Prüf-Einrichtung den zweiten Prüf-Protokoll-Datensatz in ein Socket schreiben, der dem Verteiler-Proxy zugehörig ist, wodurch eine Nachricht erzeugt wird, die eine Produktionslasteinheit repräsentiert, und die Nachricht zu dem Verteiler-Proxy übertragen wird. Im Schritt 414 kann die Prüf-Einrichtung den ersten Prüf-Protokoll-Datensatz in eine Prüf-Protokoll-Datei in dem Produktionsserver schreiben.
  • 5 ist ein Ablaufplan, der ein weiteres Verfahren 500 zum Nachbilden einer Produktionslast eines Produktionsservers in einem Testserver gemäß einer weiteren Ausführungsform der vorliegenden Erfindung veranschaulicht. Das Verfahren 500 kann durch den Verteiler-Proxy 132 von 1 umgesetzt werden.
  • Im Schritt 502 kann eine nachgebildete Produktionslast empfangen werden. Die nachgebildete Produktionslast kann einer Produktionslast in dem Produktionsserver entsprechen, die durch Verarbeiten von Client-Anforderungen erzeugt wird. Die nachgebildete Produktionslast kann in Echtzeit erzeugt werden, während die Client-Anforderungen durch den Produktionsserver verarbeitet werden, und kann Zustandsinformationen definieren, die eindeutige Zustände repräsentieren, die zwischen dem Produktionsserver und den Clients gebildet werden, von denen die Client-Anforderungen empfangen werden.
  • Im Schritt 504 kann in Reaktion auf ein Empfangen der nachgebildeten Produktionslast in Echtzeit die nachgebildete Produktionslast über einen Prozessor verarbeitet werden, um eine Vielzahl von nachgebildeten Client-Anforderungen zu erzeugen. Jede der nachgebildeten Client-Anforderungen kann eine entsprechende Client-Anforderung nachbilden, die durch den Produktionsserver empfangen wurde. Wenigstens ein Teil der nachgebildeten Client-Anforderungen kann des Weiteren die Zustandsinformationen nachbilden, die dem entsprechenden Client zugehörig sind, von dem die Client-Anforderung empfangen wird. Mit anderen Worten, einige der nachgebildeten Client-Anforderungen können entsprechende Zustandsinformationen nachbilden oder sämtliche nachgebildeten Client-Anforderungen können entsprechende Zustandsinformationen nachbilden.
  • Im Schritt 506 können für eine Vielzahl von Client-Anforderungen entsprechende Produktions-Socket-Verbindungen entsprechenden Test-Socket-Verbindungen zugeordnet werden, die den entsprechenden nachgebildeten Client-Anforderungen zugehörig sind. Im Schritt 508 können die nachgebildeten Client-Anforderungen an den Testserver in Echtzeit übertragen werden.
  • 6 ist ein Ablaufplan, der ein Verfahren zum Verarbeiten einer nachgebildeten Client-Anforderung in einem Testserver gemäß einer weiteren Ausführungsform der vorliegenden Erfindung veranschaulicht. Das Verfahren 600 kann wiederum durch den Verteiler-Proxy 132 von 1 umgesetzt werden.
  • Im Schritt 602 kann der Verteiler-Proxy ein Socket öffnen, um von einem Produktionsserver Nachrichten zu empfangen, die Komponenten einer nachgebildeten Produktionslast darstellen. Die Nachrichten können beispielsweise von einer prüfenden Einrichtung oder einem anderen geeigneten Programm/Dienstprogramm empfangen werden, die zum Erzeugen derartiger Nachrichten eingerichtet sind. Im Schritt 604 kann eine Nachricht von dem Socket gelesen (d. h. empfangen) werden. Im Schritt 606 kann die Nachricht verarbeitet werden, um an Anforderungsdaten und Zustandsinformationen eine Syntaxprüfung auszuführen.
  • Wenn an dem Entscheidungskasten 608 die Client-Anforderungsdaten eine Bindung fordern, kann im Schritt 610 eine Bindung einer Test-Socket-Verbindung mit dem Testserver erzeugt werden, und die Produktions-Socket-Verbindung kann der Test-Socket-Verbindung zugeordnet werden. Wenn die Client-Anforderungsdaten keine Bindung fordern, kann der Prozess zum Entscheidungskasten 612 vorgehen. Wenn an dem Entscheidungskasten 612 die Client-Anforderungsdaten das Aufheben einer Bindung fordern, kann bei 614 das Aufheben der Bindung der Test-Socket-Verbindung mit dem Testserver umgesetzt werden, und das Zuordnen der Produktions-Socket-Verbindung zu der Test-Socket-Verbindung kann aufgehoben werden. Wenn an dem Entscheidungskasten 612 die Client-Anforderungsdaten kein Aufheben einer Bindung fordern, kann an dem Entscheidungskasten 616 ermittelt werden, ob die Nachricht ausgefiltert wird. Wenn das nicht der Fall ist, kann die Verbindungszuordnung verwendet werden, um die nachgebildete Client-Anforderung zum Testserver zu senden, und eine Antwort kann gelesen werden. Wenn die Nachricht gefiltert wird, kann die Nachricht im Schritt 620 als nicht unterstützt identifiziert werden, und somit muss die nachgebildete Client-Anforderung nicht zu dem Testserver gesendet werden.
  • Von den Schritten 610, 614, 618 und 620 kann der Prozess zum Schritt 604 zurückkehren, und eine weitere Nachricht kann von dem Socket gelesen werden.
  • Der Prozess kann solange wiederholt werden, bis eine Entscheidung getroffen wird, den Prozess anzuhalten.
  • Der Ablaufplan und die Blockschaltbilder in den Figuren veranschaulichen die Architektur, Funktionalität und Operation von möglichen Umsetzungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedener Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in dem Ablaufplan oder Blockschaltbildern ein Modul, Segment oder Abschnitt von Code repräsentieren, der einen oder mehrere ausführbare Befehle zum Umsetzen der spezifizierten logischen Funktion(en) aufweist. Es sollte außerdem angemerkt werden, dass bei einigen alternativen Umsetzungen die in dem Block angegebenen Funktionen nicht in der in den Figuren angegebenen Reihenfolge auftreten. Zum Beispiel können zwei Blöcke, die nacheinander gezeigt sind, tatsächlich im Wesentlichen gleichzeitig ausgeführt werden oder die Blöcke können gelegentlich in Abhängigkeit von der beteiligten Funktionalität in der umgekehrten Reihenfolge ausgeführt werden. Es wird außerdem angemerkt, dass jeder Block in den Blockschaltbildern und/oder Ablaufplan-Darstellungen und Kombinationen von Blöcken in den Blockschaltbildern und/oder Ablaufplan-Darstellung durch Systeme, die auf spezieller Hardware beruhen, die die spezifizierten Funktionen oder Wirkungen ausführen, oder Kombinationen aus spezieller Hardware und Computerbefehlen umgesetzt werden können.
  • Die hier verwendete Terminologie dient lediglich dem Zweck der Beschreibung bestimmter Ausführungsformen und ist nicht vorgesehen, die Erfindung einzuschränken. Es ist vorgesehen, dass die hier verwendeten Singularformen ”ein” und ”der/die/das” ebenso die Pluralformen einschließen, falls im Kontext nicht anders deutlich angegeben. Es ist ferner klar, dass die Ausdrücke ”weist auf” und/oder ”aufweisen”, wenn sie in dieser Beschreibung verwendet werden, das Vorhandensein von angegebenen Merkmalen, Ganzzahlen, Schritten, Operationen, Elementen und/oder Komponenten spezifizieren, jedoch nicht das Vorhandensein oder die Hinzufügung von einem oder mehreren anderen Merkmalen, Ganzzahlen, Schritten, Operationen, Elementen, Komponenten und/oder Gruppen hiervon ausschließen.
  • Es ist vorgesehen, dass die entsprechenden Strukturen, Materialien, Wirkungen und Ersetzungen aller Mittel oder Schritte plus Funktionselementen in den nachfolgenden Ansprüchen jede Struktur, jedes Material oder jede Wirkung zum Ausführen der Funktion in Kombination mit anderen beanspruchten Elementen in der speziell beanspruchten Weise enthalten. Die Beschreibung der vorliegenden Erfindung wurde für Zwecke der Erläuterung und Beschreibung dargestellt, es ist jedoch nicht vorgesehen, dass sie in der beschriebenen Form für die Erfindung erschöpfend oder einschränkend ist. Viele Modifikationen und Variationen werden für einen Fachmann ersichtlich sein, ohne vom Umfang und Erfindungsgedanken der Erfindung abzuweichen. Die Ausführungsform wurde ausgewählt und beschrieben, um die Grundgedanken der Erfindung und die praktische Anwendung am besten zu erläutern und um andere Fachleute zu befähigen, die Erfindung zu verstehen, da verschiedene Ausführungsformen mit zahlreichen Modifikationen für die vorgesehene bestimmte Verwendung geeignet sind.

Claims (17)

  1. Verfahren zum Nachbilden einer Produktionslast eines Produktionsservers in einem Testserver, wobei das Verfahren aufweist: Erzeugen der Produktionslast in dem Produktionsserver durch Verarbeiten von Client-Anforderungen, die von Clients empfangen werden; während die Client-Anforderungen über einen Prozessor in Echtzeit verarbeitet werden, Nachbilden der Produktionslast, um eine nachgebildete Produktionslast zu erzeugen, die die Client-Anforderungen repräsentiert und Zustandsinformationen definiert, die eindeutige Zustände repräsentieren, die zwischen dem Produktionsserver und den entsprechenden Clients gebildet werden; und Übertragen der nachgebildeten Produktionslast in Echtzeit, um die Produktionslast in dem Testserver nachzubilden.
  2. Verfahren nach Anspruch 1, das ferner aufweist: Einrichten einer Prüf-Einrichtung, um die nachgebildete Produktionslast automatisch in Echtzeit zu erzeugen, während die Client-Anforderungen durch den Produktionsserver verarbeitet werden.
  3. Verfahren nach Anspruch 1, das ferner aufweist: Identifizieren entsprechender Produktions-Socket-Verbindungen, über die eine Vielzahl der Client-Anforderungen von den entsprechenden Clients zu dem Produktionsserver übertragen werden; und Zuordnen der Produktions-Socket-Verbindungen zu der nachgebildeten Produktionslast.
  4. Verfahren nach Anspruch 1, wobei die Zustandsinformationen Cookies angeben, die den Client-Anforderungen zugehörig sind, die auf der Grundlage einer vorherigen Nutzung des Produktionsservers variieren.
  5. Verfahren nach Anspruch 1, wobei die Zustandsinformationen Page-Dienste angeben, die den entsprechenden Clients bereitgestellt werden.
  6. Verfahren nach Anspruch 1, wobei die Zustandsinformationen Verbindungs-Steuerungselemente angeben, die den entsprechenden Client-Anforderungen zugehörig sind.
  7. Verfahren nach Anspruch 1, wobei die Zustandsinformationen Bindungsinformationen angeben, die den entsprechenden Client-Anforderungen zugehörig sind.
  8. Verfahren nach Anspruch 1, wobei die Produktionslast nachgebildet wird, ohne ein Verhalten des Produktionsservers in Bezug auf Dienste zu ändern, die durch den Produktionsserver für die Clients bereitgestellt werden.
  9. Verfahren zum Nachbilden einer Produktionslast eines Produktionsservers in einem Testserver, wobei das Verfahren aufweist: Empfangen einer nachgebildeten Produktionslast, die einer Produktionslast in dem Produktionsserver entspricht, die durch Verarbeiten von Client-Anforderungen erzeugt wird, wobei die nachgebildete Produktionslast in Echtzeit erzeugt wird, während die Client-Anforderungen durch den Produktionsserver verarbeitet werden, und Zustandsinformationen definiert, die eindeutige Zustände repräsentieren, die zwischen dem Produktionsserver und den Clients gebildet werden, von denen die Client-Anforderungen empfangen werden; in Reaktion auf ein Empfangen der nachgebildeten Produktionslast in Echtzeit über einen Prozessor Verarbeiten der nachgebildeten Produktionslast, um eine Vielzahl von nachgebildeten Client-Anforderungen zu erzeugen, wobei jede der nachgebildeten Client-Anforderungen eine entsprechende Client-Anforderung nachbildet, die durch den Produktionsserver empfangen wird, und wenigstens ein Teil der nachgebildeten Client-Anforderungen die Zustandsinformationen definiert, die dem entsprechenden Client zugehörig sind, von dem die Client-Anforderung empfangen wird; und Übertragen der nachgebildeten Client-Anforderungen in Echtzeit zu dem Testserver.
  10. Verfahren nach Anspruch 9, wobei: die Client-Anforderungen von den Clients zu dem Produktionsserver über Produktions-Socket-Verbindungen übertragen werden, die zwischen den entsprechenden Clients und dem Produktionsserver aufgebaut werden; und Verarbeiten der nachgebildeten Produktionslast, um die Vielzahl von nachgebildeten Client-Anforderungen zu erzeugen, für eine Vielzahl der Client-Anforderungen Zuordnen entsprechender Produktions-Socket-Verbindungen zu entsprechenden Test-Socket-Verbindungen aufweist, die den entsprechenden nachgebildeten Client-Anforderungen zugehörig sind.
  11. Verfahren nach Anspruch 9, wobei die Zustandsinformationen Cookies angeben, die entsprechenden Clients zugehörig sind, die auf der Grundlage einer vorherigen Nutzung des Produktionsservers variieren.
  12. Verfahren nach Anspruch 9, wobei die Zustandsinformationen Page-Dienste angeben, die den entsprechenden Clients bereitgestellt werden.
  13. Verfahren nach Anspruch 9, wobei die Zustandsinformationen Verbindungssteuerungselemente angeben, die für die entsprechenden Clients zugeordnet sind.
  14. Verfahren nach Anspruch 9, wobei die Zustandsinformationen Bindungsinformationen angeben, die den entsprechenden Client-Anforderungen zugehörig sind.
  15. Verfahren nach Anspruch 9, das ferner aufweist: Filtern der nachgebildeten Produktionslast, um zu verhindern, dass bestimmte Client-Anforderungen in dem Testserver nachgebildet werden.
  16. Computerprogrammprodukt zum Nachbilden einer Produktionslast eines Produktionsservers in einem Testserver, wobei das Computerprogrammprodukt aufweist: ein computerlesbares Speichermedium mit computerlesbarem Programmcode, der darin verkörpert ist, der beim Ausführen durch einen Prozessor die Schritte nach einem der vorhergehenden Ansprüche ausführt.
  17. System zum Nachbilden einer Produktionslast eines Produktionsservers in einem Testserver, das aufweist: einen Prozessor und ein Computerprogrammprodukt nach Anspruch 16.
DE112012004776.1T 2011-11-16 2012-11-01 Erzeugen einer Produktionsserver-Lastaktivität für einen Testserver Pending DE112012004776T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/297,314 US9148304B2 (en) 2011-11-16 2011-11-16 Generating production server load activity for a test server
US13/297,314 2011-11-16
PCT/IB2012/056080 WO2013072800A1 (en) 2011-11-16 2012-11-01 Generating production server load activity for a test server

Publications (1)

Publication Number Publication Date
DE112012004776T5 true DE112012004776T5 (de) 2014-08-07

Family

ID=48281673

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112012004776.1T Pending DE112012004776T5 (de) 2011-11-16 2012-11-01 Erzeugen einer Produktionsserver-Lastaktivität für einen Testserver

Country Status (6)

Country Link
US (10) US9148304B2 (de)
JP (1) JP2015506008A (de)
CN (1) CN103946809B (de)
DE (1) DE112012004776T5 (de)
GB (1) GB2511958B (de)
WO (1) WO2013072800A1 (de)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9148304B2 (en) 2011-11-16 2015-09-29 International Business Machines Corporation Generating production server load activity for a test server
US9268663B1 (en) 2012-04-12 2016-02-23 Amazon Technologies, Inc. Software testing analysis and control
US9058428B1 (en) 2012-04-12 2015-06-16 Amazon Technologies, Inc. Software testing using shadow requests
US10187283B2 (en) * 2013-11-19 2019-01-22 Telefonaktiebolaget Lm Ericsson (Publ) Testing the performance of a layer 3 proxy device using traffic amplification
EP3314412B1 (de) * 2015-06-25 2020-08-19 TTTech Auto AG Verfahren zum debugging von softwarekomponenten in einem verteilten zeitgesteuerten echtzeitsystem
US9910756B2 (en) * 2015-09-03 2018-03-06 International Business Machines Corporation Response-time baselining and performance testing capability within a software product
US10698794B1 (en) * 2015-12-15 2020-06-30 EMC IP Holding Company LLC Application container and application service system
US10372588B2 (en) 2016-07-08 2019-08-06 International Business Machines Corporation Providing debug information on production containers using debug containers
CN106161145A (zh) * 2016-07-25 2016-11-23 天脉聚源(北京)传媒科技有限公司 一种服务器系统运行状态信息的监控方法和系统
US10445207B2 (en) 2017-07-31 2019-10-15 Oracle International Corporation System and method to execute and manage load tests using containers
CN107678932A (zh) * 2017-09-29 2018-02-09 浪潮软件集团有限公司 一种应用性能分析方法及装置
CN107967204B (zh) * 2017-11-21 2020-12-25 百度在线网络技术(北京)有限公司 线下压测的方法、系统及终端设备
CN108390912B (zh) * 2018-01-18 2021-08-17 珠海金山网络游戏科技有限公司 一种多端测试数据采集的方法和装置
US11573875B2 (en) * 2019-06-28 2023-02-07 Paypal, Inc. Product evaluation using transaction details from a production system
CN110519789B (zh) * 2019-08-02 2023-11-28 京信网络系统股份有限公司 性能检测方法、装置、计算机设备和存储介质

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6178441B1 (en) * 1998-09-21 2001-01-23 International Business Machines Corporation Method and system in a computer network for the reliable and consistent ordering of client requests
US6510402B1 (en) 1999-02-04 2003-01-21 International Business Machines Corporation Component testing with a client system in an integrated test environment network
US6981180B1 (en) * 2000-03-16 2005-12-27 Akamai Technologies, Inc. Method and apparatus for testing request-response service using live connection traffic
US6760745B1 (en) 2000-03-30 2004-07-06 Aspect Communications Corporation Web server replicated mini-filter
US6574617B1 (en) 2000-06-19 2003-06-03 International Business Machines Corporation System and method for selective replication of databases within a workflow, enterprise, and mail-enabled web application server and platform
US6789203B1 (en) * 2000-06-26 2004-09-07 Sun Microsystems, Inc. Method and apparatus for preventing a denial of service (DOS) attack by selectively throttling TCP/IP requests
US7865306B2 (en) 2000-09-28 2011-01-04 Michael Mays Devices, methods, and systems for managing route-related information
EP1415236B1 (de) * 2001-07-16 2018-04-18 Oracle International Corporation Verfahren und vorrichtung für sitzungsreplikation und failover
US7610575B2 (en) * 2003-01-08 2009-10-27 Consona Crm Inc. System and method for the composition, generation, integration and execution of business processes over a network
US7366761B2 (en) 2003-10-09 2008-04-29 Abaca Technology Corporation Method for creating a whitelist for processing e-mails
US20040225738A1 (en) 2003-05-09 2004-11-11 Patel Dipak M. Methods, systems and computer program products for replicating servers and network traffic for problem determination and/or tuning
US7526680B2 (en) * 2005-06-15 2009-04-28 International Business Machines Corporation Stress testing a website having a backend application
US8228818B2 (en) 2005-06-24 2012-07-24 At&T Intellectual Property Ii, Lp Systems, methods, and devices for monitoring networks
WO2007038584A1 (en) 2005-09-27 2007-04-05 Stanley, Morgan Computer networks for providing a test environment
US8572275B2 (en) 2005-10-06 2013-10-29 Wrapmail, Inc. Method, system and software for dynamically extracting content for integration with electronic mail
US20070112785A1 (en) * 2005-11-08 2007-05-17 Autup, Inc. System and method for updating a storage medium
US7984015B2 (en) 2006-10-20 2011-07-19 Oracle International Corporation Database workload capture and replay architecture
US20080098072A1 (en) * 2006-10-23 2008-04-24 International Business Machines Corporation Method and process to add recipients to an on-going electronic message thread
US8429736B2 (en) * 2008-05-07 2013-04-23 Mcafee, Inc. Named sockets in a firewall
US8386207B2 (en) 2009-11-30 2013-02-26 International Business Machines Corporation Open-service based test execution frameworks
US9116779B2 (en) 2010-12-17 2015-08-25 International Business Machines Corporation Test management domain asset discovery and analysis
US9148304B2 (en) 2011-11-16 2015-09-29 International Business Machines Corporation Generating production server load activity for a test server
US9027155B2 (en) * 2012-07-02 2015-05-05 International Business Machines Corporation System for governing the disclosure of restricted data
US20160021512A1 (en) * 2013-03-13 2016-01-21 Retail Optimization International Inc. Systems and methods for indoor location services
US20140365234A1 (en) * 2013-06-11 2014-12-11 Community Pursuits, Incorporated Computer Network-Interfaced Method for Health Care Provider Active Reach Into Diverse Sub-Population Communities
US20170187602A1 (en) * 2015-12-29 2017-06-29 Vivek Pathela System and method of troubleshooting network source inefficiency
US10372600B2 (en) * 2017-03-01 2019-08-06 Salesforce.Com, Inc. Systems and methods for automated web performance testing for cloud apps in use-case scenarios

Also Published As

Publication number Publication date
US10397077B2 (en) 2019-08-27
US9106451B2 (en) 2015-08-11
US20190327162A1 (en) 2019-10-24
US20150326465A1 (en) 2015-11-12
GB2511958A (en) 2014-09-17
CN103946809B (zh) 2016-06-22
US20130124705A1 (en) 2013-05-16
GB2511958B (en) 2020-08-19
US20180102957A1 (en) 2018-04-12
US9876695B2 (en) 2018-01-23
JP2015506008A (ja) 2015-02-26
CN103946809A (zh) 2014-07-23
US20180131589A1 (en) 2018-05-10
US9893969B2 (en) 2018-02-13
US20190349278A1 (en) 2019-11-14
GB201409862D0 (en) 2014-07-16
US10958548B2 (en) 2021-03-23
US9569340B2 (en) 2017-02-14
WO2013072800A1 (en) 2013-05-23
US20170085454A1 (en) 2017-03-23
US9703682B2 (en) 2017-07-11
GB2511958A8 (en) 2014-10-01
US9148304B2 (en) 2015-09-29
US20150324273A1 (en) 2015-11-12
US10938697B2 (en) 2021-03-02
US20130124610A1 (en) 2013-05-16
US10348593B2 (en) 2019-07-09
US20170257296A1 (en) 2017-09-07

Similar Documents

Publication Publication Date Title
DE112012004776T5 (de) Erzeugen einer Produktionsserver-Lastaktivität für einen Testserver
DE102015004127A1 (de) Verfahren und System zum Vergleichen von verschienenen Versionen einer cloud-basierten Anwendung in einer Produktionsumgebung unter Verwendung von getrennten Back-End-Systemen
DE112012004247T5 (de) Passives Überwachen virtueller Systeme unter Verwendung einer erweiterbaren Indexierung
DE102012218699A1 (de) Passives überwachen virtueller systeme mittels agentenlosem offline-indexieren
DE112014002960T5 (de) Ableitung verallgemeinerter Testfälle
DE112013006588T5 (de) Verwaltungssystem zum Verwalten eines Computersystems und Verwaltungsverfahren hierfür
DE102018110020A1 (de) Verfahren zum Erzeugen eines auf einem Testgerät ausführbaren Modells eines technischen Systems und Testgerät
DE102008046096A1 (de) Verfahren und Vorrichtung zum Bestimmen von Anforderungsparametern an mindestens eine physische Hardwareeinheit
DE112022004038T5 (de) Digitaler zwilling durch wellenformerzeugung mit maschinellem lernen einschliesslich parametersteuerung für prüflingsemulation
DE102021130630A1 (de) Testen von software-anwendungskomponenten
EP3211830A1 (de) Verfahren zum überwachen und planen einer produktionszelle und netzwerkmanagementsystem für eine produktionszelle
DE102013113969B4 (de) Dokumentation von Transaktionen zwischen Endgeräten und einem Server
DE102019129762B3 (de) Verfahren und System zur Ausführung eines Identity und Access Ma-nagement Systems
EP2927811B1 (de) Verfahren zur Steuerung eines automatisierten Ablaufs
DE102022212020A1 (de) Prüfen von Programmen
DE102022114286A1 (de) Verfahren zum Rekonstruieren eines Laufzeitfehlers eines Softwaremoduls eines Kraftfahrzeug- Steuergeräts sowie Speichermedium und Prozessorschaltung
WO2021089083A1 (de) Verfahren und system zur ausführung eines identity und access management systems
CN105407112A (zh) 一种设备能力的学习方法、装置和系统
EP4181000A1 (de) Verfahren und rechenumgebung zum erstellen und anwenden eines prüfalgorithmus für rechenvorgänge
DE202019106136U1 (de) System zur Ausführung eines Identity und Access Managements
DE102014216464A1 (de) Vorrichtung und Verfahren zur Computerprogramminstallation für ein Kraftfahrzeug
WO2010115447A1 (de) Konfigurieren eines leitsystems

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R084 Declaration of willingness to licence