DE102016203598A1 - Gemeinschaftliche sammlung von diagnosedaten von softwareprogrammen - Google Patents

Gemeinschaftliche sammlung von diagnosedaten von softwareprogrammen Download PDF

Info

Publication number
DE102016203598A1
DE102016203598A1 DE102016203598.3A DE102016203598A DE102016203598A1 DE 102016203598 A1 DE102016203598 A1 DE 102016203598A1 DE 102016203598 A DE102016203598 A DE 102016203598A DE 102016203598 A1 DE102016203598 A1 DE 102016203598A1
Authority
DE
Germany
Prior art keywords
diagnostic
software program
service
data
agent
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
DE102016203598.3A
Other languages
English (en)
Inventor
Gianluca Della Corte
Giancarlo Delle Cese
Antonio M. Sgro
Pia Toro
Ignazio F. Trovato
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
Priority claimed from US14/638,040 external-priority patent/US9606894B2/en
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE102016203598A1 publication Critical patent/DE102016203598A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0787Storage of error reports, e.g. persistent data storage, storage using memory protection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0715Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a system implementing multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0748Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a remote unit communicating with a single-box computer node experiencing an error/fault
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0784Routing of error reports, e.g. with a specific transmission path or data flow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • 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/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Eine Datenverarbeitungsumgebung enthält mehrere Softwareprogramme, die auf mehreren Endpunkt-Datenverarbeitungsmaschinen ausgeführt werden. Jedes Softwareprogramm besitzt zugehörige Diagnosedaten. Jede Endpunkt-Maschine führt einen Diagnose-Agent aus. Die Diagnose-Agents stehen untereinander in Datenaustauschverbindung. Ein Überwachungsserver, der mit den mehreren Softwareprogrammen interagiert, erfasst eine Fehlfunktion, die einem Softwareprogramm zugehörig ist, das auf einem Zielendpunkt ausgeführt wird, und übergibt eine Anforderung zum Sammeln der Diagnosedaten des fehlerhaft funktionierenden Softwareprogramms. Diese Sammelanforderung wird an ein Dienstsoftwareprogramm übergeben, das von dem fehlerhaft funktionierenden Programm verschieden ist. Das Dienstsoftwareprogramm kann auf einem Dienstendpunkt ausgeführt werden, der von dem Zielendpunkt verschieden ist. Die angeforderten Diagnosedaten werden von dem Dienstsoftwareprogramm von einem Diagnose-Agent abgerufen, der auf dem Zielendpunkt ausgeführt wird. Der Überwachungsserver empfängt anschließend die angeforderten Diagnosedaten von dem Dienstsoftwareprogramm.

Description

  • HINTERGRUND
  • Die vorliegende Offenbarung betrifft das Gebiet Informationstechnologie (IT). Insbesondere betrifft diese Offenbarung die Diagnose von Softwareprogrammen. Der Hintergrund der vorliegenden Offenbarung wird im Folgenden mit der Erörterung von Techniken vorgestellt, die sich auf ihren Kontext beziehen. Aber auch wenn diese Erörterung auf Dokumente, Handlungen, Artefakte und dergleichen verweist, so wird dadurch nicht angedeutet oder dargestellt, dass die erörterten Techniken Teil des Stands der Technik sind oder übliches Allgemeinwissen auf dem Gebiet sind, das für die vorliegende Offenbarung relevant ist.
  • Softwareprogramme können während ihres Betriebs zu einer Fehlfunktion neigen, insbesondere, wenn sie in einer komplexen Umgebung ausgeführt werden, in der mehrere Softwareprogramme untereinander interagieren. Wenn dies geschieht, werden für gewöhnlich Diagnoseaktivitäten ausgeführt; die Diagnoseaktivitäten können auf ein Identifizieren der Ursache der Fehlfunktion abzielen, um zu versuchen, sie zu beheben (entweder durch eine dauerhafte Reparatur der Fehlfunktion oder einfach durch eine temporäre Umgehung). Zu diesem Zweck können Diagnosedaten (wie beispielsweise Protokolldateien, die durch Nachverfolgen der Ausführung der Softwareprogramme generiert werden) von den Datenverarbeitungsmaschinen gesammelt werden, auf denen die Softwareprogramme ausgeführt werden; die Analyse dieser Diagnosedaten stellt nützliche Hinweise zu dem Kontext bereit, in dem die Fehlfunktion aufgetreten ist (um dadurch die Identifizierung ihrer Ursache zu erleichtern).
  • KURZDARSTELLUNG DER ERFINDUNG
  • Hierin werden Ausführungsformen eines Verfahrens, Computerprogrammprodukts und Computersystems zum Ausführen von Diagnoseaktivitäten in einer Datenverarbeitungsumgebung offenbart. Die Datenverarbeitungsumgebung enthält mehrere Softwareprogramme, die auf mehreren Endpunkt-Datenverarbeitungsmaschinen ausgeführt werden. Jedes Softwareprogramm besitzt zugehörige Diagnosedaten. Jede Endpunkt-Datenverarbeitungsmaschine führt einen Diagnose-Agent aus. Die Diagnose-Agents stehen alle untereinander in Datenaustauschverbindung.
  • Ein Überwachungsserver interagiert mit den Softwareprogrammen und erfasst eine Fehlfunktion der Interaktion mit einem der Softwareprogramme, das auf einer Zielendpunkt-Datenverarbeitungsmaschine ausgeführt wird. In Reaktion darauf übergibt der Überwachungsserver eine Anforderung zum Sammeln der Diagnosedaten des fehlerhaft funktionierenden Softwareprogramms. Diese Sammelanforderung wird an ein Dienstsoftwareprogramm übergeben, das von dem fehlerhaft funktionierenden Softwareprogramm verschieden ist. In einigen Ausführungsformen wird das Dienstsoftwareprogramm auf einer Dienstendpunkt-Datenverarbeitungsmaschine ausgeführt, die von der Zielendpunkt-Datenverarbeitungsmaschine verschieden ist, auf dem das fehlerhaft funktionierende Softwareprogramm ausgeführt wurde.
  • Die angeforderten Diagnosedaten werden von dem Dienstsoftwareprogramm von einem Diagnose-Agent abgerufen, der auf der Zielendpunkt-Datenverarbeitungsmaschine ausgeführt wird. In einigen Ausführungsformen übergibt ein Diagnose-Agent, der auf der Dienstendpunkt-Datenverarbeitungsmaschine ausgeführt wird, eine Anforderung zum Abrufen der Diagnosedaten des fehlerhaft funktionierenden Softwareprogramms. In derartigen Ausführungsformen wird diese Abrufanforderung an den Diagnose-Agent übergeben, der auf der Zielendpunkt-Datenverarbeitungsmaschine ausgeführt wird. Der Überwachungsserver empfängt anschließend die angeforderten Diagnosedaten von dem Dienstsoftwareprogramm.
  • KURZBESCHREIBUNG DER VERSCHIEDENEN ANSICHTEN DER ZEICHNUNGEN
  • Die in der vorliegenden Anmeldung enthaltenen Zeichnungen sind in die Patentschrift integriert und bilden einen Bestandteil davon. Sie veranschaulichen Ausführungsformen der vorliegenden Offenbarung und dienen zusammen mit der Beschreibung zum Erklären der Grundgedanken der Offenbarung. Die Zeichnungen sind nur Veranschaulichungen bestimmter Ausführungsformen und schränken die Offenbarung nicht ein. Aus Gründen der Einfachheit werden entsprechende Elemente mit gleichen oder ähnlichen Bezugszeichen angegeben, und ihre Erklärung wird nicht wiederholt, und der Name jeder Entität wird allgemein zum Angeben ihres Typs und ihrer Attribute verwendet – wie zum Beispiel Wert, Inhalt und Darstellung.
  • 1 ist ein Blockschaubild, das eine beispielhafte Datenverarbeitungsumgebung zum Ausführen von Diagnoseaktivitäten gemäß Ausführungsformen der vorliegenden Offenbarung veranschaulicht.
  • 2 ist ein Blockschaubild, das beispielhafte Softwarekomponenten zur Verwendung beim Ausführen von Diagnoseaktivitäten in einer Datenverarbeitungsumgebung gemäß Ausführungsformen der vorliegenden Offenbarung veranschaulicht.
  • 3A ist ein Blockschaubild, das beispielhafte Interaktionen zwischen einem Überwachungsserver und Softwareprogrammen, die auf Endpunkt-Datenverarbeitungsmaschinen ausgeführt werden, gemäß Ausführungsformen der vorliegenden Offenbarung veranschaulicht.
  • 3B ist ein Blockschaubild, das eine beispielhafte Fehlfunktion der Interaktion zwischen einem Überwachungsserver und einem Softwareprogramm, das auf einer Endpunkt-Datenverarbeitungsmaschinen ausgeführt wird, gemäß Ausführungsformen der vorliegenden Offenbarung veranschaulicht.
  • 3C ist ein Blockschaubild, das ein beispielhaftes Übergeben einer Anforderung zum Sammeln der Diagnosedaten eines fehlerhaft funktionierenden Softwareprogramms von einem Überwachungsserver an ein Dienstsoftwareprogramm gemäß Ausführungsformen der vorliegenden Offenbarung veranschaulicht.
  • 3D ist ein Blockschaubild, das einen beispielhaften Empfang der Diagnosedaten eines fehlerhaft funktionierenden Softwareprogramms durch einen Überwachungsserver von einem Dienstsoftwareprogramm gemäß Ausführungsformen der vorliegenden Offenbarung veranschaulicht.
  • 4A ist der erste Teil einer Aktivitätsdarstellung, die beispielhafte Diagnoseaktivitäten, die durch einen Überwachungsserver, Überwachungs-Agents und Diagnose-Agents in einer Datenverarbeitungsumgebung ausgeführt werden, gemäß Ausführungsformen der vorliegenden Offenbarung veranschaulicht.
  • 4B ist der zweite Teil einer Aktivitätsdarstellung, die beispielhafte Diagnoseaktivitäten, die durch einen Überwachungsserver, Überwachungs-Agents und Diagnose-Agents in einer Datenverarbeitungsumgebung ausgeführt werden, gemäß Ausführungsformen der vorliegenden Offenbarung veranschaulicht.
  • Die Erfindung ist für verschiedene Modifizierungen und alternative Formen offen, spezielle Formen davon wurden jedoch als Beispiel in den Zeichnungen gezeigt und ausführlich beschrieben. Es sollte jedoch klar sein, dass die Erfindung keinesfalls auf die bestimmten beschriebenen Ausführungsformen beschränkt werden soll. Die Erfindung soll im Gegenteil alle Modifizierungen, Entsprechungen und Alternativen abdecken, die unter den Erfindungsgedanken und Schutzumfang der Erfindung fallen.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die Sammlung von Diagnosedaten kann in speziellen Umgebungen relativ komplex sein. Ein typisches Beispiel sind Cloud-Computing (oder einfach Cloud-)Umgebungen, in denen Cloud-Dienste auf Anforderung (On-Demand) von Cloud-Anbietern geliefert werden, die sie auf Anforderung bereitstellen, konfigurieren und freigeben (wobei eine entsprechende Umsetzung für entsprechende Nutzer vollständig maskiert wird). In diesem Fall, wie in der am 16. Oktober 2012 eingereichten US-Patentanmeldung mit der Veröffentlichungsnr. 2014/0109188 mit dem Titel „Providing Remote Application Logs for Cloud Applications“ beschrieben, die hierin durch Verweis in ihrer Gesamtheit aufgenommen wird, kann eine Cloud-Plattform einen Dienst bereitstellen, der eine Schnittstelle zu entfernt angeordneten gespeicherten Anwendungsprotokollen von Anwendungskomponenten zugänglich macht, die darauf bereitgestellt sind; die zugänglich gemachte Schnittstelle wird instanziiert, um entfernt angeordnete Anforderungen von Anwendungsprotokollen, die von einem Client gesendet werden, für eine angegebene Anwendungskomponente zu verarbeiten. Des Weiteren, wie in dem am 5. Mai 2010 eingereichten US-Patent Nr. 8 719 804 mit dem Titel „Managing Runtime Execution of Applications on Cloud Computing Systems” beschrieben, das hierin durch Verweis in seiner Gesamtheit aufgenommen wird, kann ein Peer-to-Peer-(P2P)Ansatz verwendet werden, um ohne Notwendigkeit für eine (oder eine zusätzliche) zentrale Überwachung globale Systemzustände zu aggregieren, um ein skalierbares Überwachungssystem zu erstellen; insbesondere können Überwachungsprogramme, die mit jeder Anwendungsinstanz bereitgestellt werden, ihren Zustand als Attribut-Tupel zugänglich machen, die als Aktualisierungen in Aggregationsbäumen verbreitet werden.
  • Die Sammlung der Diagnosedaten kann jedoch in bestimmten Situationen recht schwierig, wenn nicht gar unmöglich sein. Ein typisches Beispiel dafür ist, wenn auf die Datenverarbeitungsmaschinen der Softwareprogramme nicht direkt zugegriffen werden kann.
  • Dies geschieht im Allgemeinen in den Cloud-Umgebungen. In den Cloud-Umgebungen können Softwareanwendungen zum Beispiel als Cloud-Dienst gemäß dem Modell Software-as-a-Service (SaaS) bereitgestellt werden. Diese Softwareanwendungen können mit Endpunkt-Datenverarbeitungsmaschinen (oder einfach Endpunkten) der Nutzer interagieren; ein typisches Beispiel ist eine (Ressourcen-)Überwachungsanwendung, die zum Überwachen von ausgewählten Ressourcen der Endpunkte verwendet wird. In diesem Fall hat jede Softwareanwendung eine in der Cloud-Umgebung ausgeführte zentrale Komponente, die mit einer lokalen Komponente interagiert, die auf jedem Endpunkt ausgeführt wird (d.h. einem Überwachungsserver, der Überwachungsdaten des Endpunkts von einem entsprechenden Überwachungs-Agent im Fall der Überwachungsanwendung empfängt); um den Datenschutz aller Informationen der Nutzer zu gewährleisten, kann der Cloud-Anbieter auf die Endpunkte jedoch auf keine andere Weise zugreifen (abgesehen vom Datenaustausch mit den entsprechenden lokalen Komponenten).
  • Daher ist der Cloud-Anbieter bei einem Auftreten der Fehlfunktion von irgendeiner lokalen Komponente der Softwareanwendungen möglicherweise nicht in der Lage, irgendwelche Diagnosedaten von den entsprechenden Endpunkten zu sammeln. In diesem Fall muss der Cloud-Anbieter stattdessen die Nutzer auffordern, die gewünschten Diagnosedaten bereitzustellen. Zum Beispiel können die Nutzer auf die Endpunkte zugreifen, an denen die lokalen Komponenten fehlerhaft funktionieren, und ihre Diagnosedaten manuell in die Cloud-Umgebung hochladen; diese Operation sind jedoch zeitaufwendig und fehleranfällig. Des Weiteren können Nutzer Skripte umsetzen, die dieselben Operationen über FTP-Verbindungen mit dem Cloud-Anbieter ausführen; FTP-Verbindungen sind allerdings relativ langsam. Auf jeden Fall ist für die Sammlung der Diagnosedaten immer ein Eingreifen der Nutzer erforderlich; dies kann ziemlich lästig sein, und es kann den Zeitaufwand beträchtlich erhöhen, der zum Beheben einer Fehlfunktion erforderlich ist, was sich auf die entsprechende Dienstgüte nachteilig auswirkt (sowohl in Bezug auf die Kundenzufriedenheit als auch die Leistung der Softwareanwendungen).
  • Allgemein ausgedrückt beruht die vorliegende Offenbarung auf dem Konzept eines gemeinschaftlichen Sammelns von Diagnosedaten. Insbesondere stellt ein Aspekt ein Verfahren zum Ausführen von Diagnoseaktivitäten in einer Datenverarbeitungsumgebung bereit, wobei Diagnosedaten eines fehlerhaft funktionierenden Softwareprogramms von einem davon verschiedenen Dienstsoftwareprogramm empfangen werden, wobei dieses Dienstsoftwareprogramm die Diagnosedaten des fehlerhaft funktionierenden Softwareprogramms von einem Zieldiagnose-Agent abruft, der auf einer Ziel-Datenverarbeitungsmaschine des fehlerhaft funktionierenden Softwareprogramms ausgeführt wird. Ein weiterer Aspekt stellt ein Computerprogramm zum Umsetzen des Verfahrens (und eines entsprechenden Computerprogrammprodukts) bereit. Ein weiterer Aspekt stellt ein entsprechendes System bereit.
  • Insbesondere werden ein oder mehrere Aspekte der vorliegenden Offenbarung in den unabhängigen Ansprüchen dargelegt, und vorteilhafte Merkmale davon werden in den Unteransprüchen dargelegt mit dem Wortlaut aller Ansprüche, die hierin unter Verweis verbatim aufgenommen werden (mit allen vorteilhaften Merkmalen, die unter Verweis auf jeden spezifischen Aspekt bereitgestellt werden, der mutatis mutandis für jeden anderen Aspekt gilt).
  • Unter Bezugnahme insbesondere auf 1 wird ein schematisches Blockschaubild einer Datenverarbeitungsinfrastruktur 100 gezeigt, wobei die Lösung gemäß einer Ausführungsform der vorliegenden Offenbarung angewendet werden kann. Insbesondere ist die Datenverarbeitungsinfrastruktur 100 eine Cloud-(Computing-)Umgebung (die Cloud-Ressourcen auf Anforderung bereitstellt). Die Cloud-Umgebung 100 kann auf verschiedenen Nutzungsmodellen beruhen, insbesondere Public Cloud (d.h. für die allgemeine Öffentlichkeit), Private Cloud (d.h. für eine Einzelorganisation), Community Cloud (d.h. für mehrere Organisationen) oder Hybrid Cloud (d.h. auf Grundlage einer Kombination von verschiedenen Nutzungsmodellen).
  • Die Cloud-Umgebung 100 weist einen oder mehrere Cloud-Anbieter 105 auf (in der Figur wird nur einer gezeigt). Jeder Cloud-Anbieter 105 ist eine Entität, die einen Pool von (Datenverarbeitungs-)Ressourcen als Cloud-Dienste bereitstellt (d.h. gemeinsam genutzte Ressourcen, die sehr schnell bereitgestellt, konfiguriert und freigegeben werden können); die Ressourcen der Cloud-Dienste (im Allgemeinen des virtuellen Typs, d.h. Software-Emulationen von physischen Ressourcen) werden Nutzern des Cloud-Anbieters 105 auf Anforderung bereitgestellt, sodass jeder Nutzer die alleinige Kontrolle über diese Ressourcen hat (die anschließend genauso verwendet werden können, als wären sie dedizierte physische Ressourcen). Die Cloud-Dienste können gemäß mehreren Dienstmodellen bereitgestellt werden, insbesondere Infrastructure as a Service bzw. IaaS (wobei Datenverarbeitungs- und Speicherressourcen mit entsprechender Verwaltungssoftware bereitgestellt werden, wie beispielsweise virtuelle Maschinen, virtuelle Platten), Platform as a Service bzw. PaaS (wobei Softwareplattformen bereitgestellt werden, wie z.B. Datenbanken, Web-Server), Software as a Service bzw. SaaS (wobei Softwareanwendungen bereitgestellt werden wie beispielsweise Überwachungsprogramme, Office-Pakete) und Network as a Service bzw. NaaS (wobei Konnektivitätsdienste bereitgestellt werden, wie beispielsweise VPNs, IP-Adressen).
  • Die Nutzer stellen eine Verbindung mit dem Cloud-Anbieter 105 über ein (Kommunikations-)Netzwerk 110 her. Zu diesem Zweck macht der Cloud-Anbieter 105 eine Front-End-Komponente zugänglich, damit auf sie zugegriffen werden kann. Des Weiteren hat der Cloud-Anbieter 105 eine Back-End-Komponente, die eigentlich die bereitgestellten Cloud-Ressourcen umsetzt, zum Beispiel eine große Anzahl von Server-Datenverarbeitungsmaschinen oder einfach Server, die in einer oder mehreren Server-Farmen organisiert sind (in der Figur nicht gezeigt); auf die Back-End-Komponente des Cloud-Anbieters 105 kann von außen nicht zugegriffen werden, sodass die Nutzer weder ihren Standort noch ihre Konfiguration kennen.
  • In dem Kontext der vorliegenden Offenbarung weisen die von dem Cloud-Anbieter 105 angebotenen Cloud-Ressourcen Softwareanwendungen auf, die gemäß den SaaS-Modellen bereitgestellt werden (wobei die Cloud-Infrastruktur 100 öffentlich ist, wobei auf den Cloud-Anbieter 105, der ein Drittanbieter ist, über das Internet zugegriffen wird). Zum Beispiel können diese Softwareanwendungen eine (Leistungs-)Überwachungsanwendung aufweisen, die als ein On-Demand-Dienst bereitgestellt wird. In diesem Fall kann die Überwachungsanwendung durch einen allgemeinen Nutzer des Cloud-Anbieters 105 genutzt werden, um ausgewählte (Software- und/oder Hardware-)Ressourcen von einer oder mehreren ihrer Endpunkt-Datenverarbeitungsmaschinen oder einfach Endpunkten 115 zu überwachen (zum Beispiel Server von einem oder mehreren Rechenzentren). Der Nutzer greift auf die Überwachungsanwendung (zum Beispiel zu Konfigurations- oder Meldungszwecken) mit einer oder mehreren ihrer Client-Datenverarbeitungsmaschinen oder einfach Clients 120 zu (zum Beispiel des Typs Thin Client).
  • Jede Datenverarbeitungsmaschine der Cloud-Infrastruktur 100 (d.h. Server des Cloud-Anbieters 105, Endpunkt 115 und Client 120 des Nutzers) weist mehrere Einheiten auf, die parallel mit einer Busstruktur 125 verbunden sind (mit einer Architektur, die in geeigneter Weise gemäß der gegenwärtigen Funktion der Datenverarbeitungsmaschine in der Cloud-Infrastruktur 100 skaliert ist). Im Detail steuern einer oder mehrere Mikroprozessoren (µP) 130 den Betrieb der Datenverarbeitungsmaschine; ein RAM 135 wird von den Mikroprozessoren 130 als Arbeitsspeicher verwendet, und ein ROM 140 speichert grundlegenden Code für ein Boot-Programm der Datenverarbeitungsmaschine. Die Datenverarbeitungsmaschine wird außerdem mit einem Massenarbeitsspeicher bereitgestellt, der eine oder mehrere Festplatten 145 und Laufwerke 150 zum Lesen/Schreiben von austauschbaren Speichereinheiten 155 aufweist (zum Beispiel optische Platten). Des Weiteren hat die Datenverarbeitungsmaschine Eingabe/Ausgabe-(E/A)Einheiten 160 (zum Beispiel eine Tastatur, eine Maus und einen Bildschirm). Ein Netzadapter (NIC) 165 wird zum Verbinden der Datenverarbeitungsmaschine mit dem Netzwerk 110 verwendet. Insbesondere in dem Fall des Servers des Cloud-Anbieters 105 können die Festplatten 145 durch Speichereinheiten seiner Server-Farm bereitgestellt werden, und die Laufwerke 150 und die E/A-Einheiten 160 können durch deren Konsole bereitgestellt werden.
  • Unter Bezugnahme auf 2 werden die Software-Hauptkomponenten gezeigt, die zum Umsetzen der Lösung gemäß einer Ausführungsform der vorliegenden Offenbarung verwendet werden können.
  • Alle Softwarekomponenten (Programme und Daten) werden insgesamt mit dem Bezugszeichen 200 bezeichnet. Die Softwarekomponenten 200 werden typischerweise in dem Massenarbeitsspeicher gespeichert und (zumindest teilweise) in den Arbeitsspeicher der entsprechenden Datenverarbeitungsmaschinen geladen, wenn die Programme ausgeführt werden. Die Programme werden zuerst in dem Massenarbeitsspeicher installiert, zum Beispiel von austauschbaren Speichereinheiten oder dem Netzwerk. Diesbezüglich kann jede Softwarekomponente ein Modul, ein Segment oder einen Codeabschnitt darstellen, der eine oder mehrere ausführbare Anweisungen zum Umsetzen der angegebenen logischen Funktion aufweist.
  • Insbesondere führt jeder Endpunkt 115 eines allgemeinen Nutzers ein oder mehrere (funktionale) Softwareprogramme aus. Zum Beispiel weisen diese Softwareprogramme einen Bereitstellungs-Agent 203 zum Bereitstellen anderer Softwareprogramme auf dem Endpunkt 115 auf (in Zusammenarbeit mit einem in der Figur nicht gezeigten Bereitstellungsserver, der auf einem oder mehreren Servern des Cloud-Anbieters ausgeführt wird).
  • In dem zur Debatte stehenden Beispiel hat der Bereitstellungs-Agent 203 einen Überwachungs-Agent 205 zum Überwachen von ausgewählten (überwachten) Ressourcen des Endpunkts 115 (zum Beispiel Verarbeitungsleistung. Arbeitsspeicher, Betriebssystem, Anwendungsprogramme) bereitgestellt. Zu diesem Zwecke greift der Überwachungs-Agent 205 auf ein (lokales) Überwachungskonfigurations-Repository 210 zu, das eine (Überwachungs-)Konfiguration des Überwachungs-Agent 205 zum Steuern einer entsprechenden Überwachungsaktivität speichert (zum Beispiel Messwerte für die überwachten zu messenden Ressourcen, eine Häufigkeit ihrer Messungen). Der Überwachungs-Agent 205 sammelt Überwachungsdaten, die in einem (lokalen) Überwachungsdaten-Repository 215 gespeichert werden; die Überwachungsdaten weisen die Werte für die Messwerte der überwachten Ressourcen auf, die im Zeitablauf gemessen werden (die zum Beispiel die Inanspruchnahme von Hardware-Ressourcen, wie beispielsweise deren Prozentsatz, oder die Verwendung von Softwareressourcen, wie beispielsweise deren verarbeitete Transaktionen pro Sekunde angeben). Der Überwachungs-Agent 205 ist außerdem für eine Verfolgung seiner Ausführung instrumentiert, indem sich darauf beziehende Protokolldaten nacheinander in einem (lokalen) Protokolldaten-Repository 220 gespeichert werden; die Protokolldaten zeichnen eine Angabe von ausgewählten Ereignissen auf, die während der Ausführung des Überwachungs-Agent 205 aufgetreten sind (zum Beispiel normale Operationen, Warnbedingungen, die Aktionen zum Verhindern von Fehlern erfordern, Fehlerbedingungen, die Fehler verursachen).
  • Ein oder mehrere Server des Cloud-Anbieters (in der Figur ist nur einer gezeigt, bezeichnet mit dem Bezugszeichen 225) werden auf einem Überwachungsserver 230 ausgeführt (auf den von den Nutzern nicht zugegriffen werden kann), der die Überwachungsanwendung umsetzt, die als Dienst (gemäß dem SaaS-Modell) für einen oder mehrere entsprechende Nutzer bereitgestellt wird. Zu diesem Zweck interagiert der Überwachungsserver 230 mit dem Überwachungs-Agent 205 der Endpunkte 115 seiner Nutzer; der Überwachungsserver 230 hat allerdings keinen direkten Zugriff auf die Endpunkte 115 (um den Datenschutz aller darauf verfügbaren Informationen der Nutzer zu gewährleisten). Des Weiteren steuert der Überwachungsserver 230 ein (zentrales) Konfigurations-Repository 235 (das die Überwachungskonfigurationen der Überwachungs-Agents 205 jedes Nutzers speichert), ein (zentrales) Überwachungsdaten-Repository 240 (das die Überwachungsdaten der Überwachungs-Agents 205 jedes Nutzers speichert) und ein (zentrales) Protokolldaten-Repository 245 (das die Protokolldaten der Überwachungs-Agents 205 jedes Nutzers speichert). Ein Diagnosemanager 250 wird (zum Beispiel durch einen Systemadministrator des Cloud-Anbieters) zum Ausführen von Diagnoseaktivitäten auf den Überwachungs-Agents 205 aller Nutzer verwendet; zu diesem Zwecke greift der Diagnosemanager 250 auf das Protokolldaten-Repository 245 zu.
  • Ein oder mehrere Server des Cloud-Anbieters, entweder identisch mit oder verschieden vom Server 225 (in der Figur wird nur einer gezeigt, bezeichnet mit dem Bezugszeichen 255) machen eine Überwachungsschnittstelle 260 zugänglich, die mit dem Überwachungsserver 230 in Datenaustausch steht. Der Client 120 jedes Nutzers (in der Figur ist nur einer gezeigt) führt einen Browser 265 aus (der normalerweise zum Surfen im Internet verwendet wird); in diesem Fall wird der Browser 265 auch für den Zugriff auf die Überwachungsschnittstelle 260 verwendet, um die Überwachung der Endpunkte 115 der Nutzer zu verwalten (zum Beispiel zum Erstellen, Aktualisieren, Löschen, Starten, Stoppen von Überwachungsaktivitäten auf dieser und zum Herunterladen von entsprechenden Überwachungsberichten).
  • In der Lösung gemäß einer Ausführungsform der vorliegenden Offenbarung führt jeder Endpunkt 115 ferner einen Diagnose-Agent 270 aus (zum Sammeln der Diagnosedaten von anderen Endpunkten 115 desselben Nutzers, wie im Folgenden beschrieben). Der Diagnose-Agent 270 jedes Endpunkts 115 steht mit dem entsprechenden Überwachungs-Agent 205 und mit den Diagnose-Agents 270 der anderen Endpunkte 115 desselben Nutzers (in der Figur nicht gezeigt) in Datenaustauschverbindung. Des Weiteren greift der Diagnose-Agent 270 auf ein (lokales) Diagnosekonfigurations-Repository 275 zu, das eine (Diagnose-)Konfiguration des Diagnose-Agent 270 zum Steuern einer gemeinsamen Nutzung der Protokolldaten des entsprechenden Überwachungs-Agent 205 speichert (zum Beispiel eine Liste von Dateien und Ordnern, in denen sie gespeichert sind). Der Diagnose-Agent 270 greift dementsprechend auf das Protokolldaten-Repository 220 zu (d.h. seine Daten/Ordner, die in der Diagnosekonfiguration angegeben sind). In diesem Fall steuert der Überwachungsserver 230 ferner ein (zentrales) Diagnosekonfigurations-Repository 280 (das Diagnosekonfigurationen der Diagnose-Agents 270 jedes Nutzers speichert, die von dem Nutzer wie oben mit dem Browser 265 über die Überwachungsschnittstelle 260 verwaltet werden können).
  • Unter folgender Bezugnahme auf 3A bis 3D wird eine beispielhafte Anwendung der Lösung gemäß einer Ausführungsform der vorliegenden Offenbarung gezeigt.
  • Beginnend bei 3A interagiert der Überwachungsserver 230 während eines normalen Betriebs der Überwachungsanwendung mit den Überwachungs-Agents aller Endpunkte; insbesondere empfängt der Überwachungsserver 230 kontinuierlich die Überwachungsdaten, die an jedem Endpunkt von dem entsprechenden Überwachungs-Agent gesammelt wurden. Zum Beispiel zeigt die Figur zwei Endpunkte, wobei zwischen den Endpunkten und den entsprechenden Softwarekomponenten durch die Hinzufügung der Suffixe „a“ und „b“ zu ihren Bezugszeichen unterschieden wird; daher empfängt der Überwachungsserver 230 in diesem Fall die Überwachungsdaten des Endpunkts 115a von seinem Überwachungs-Agent 205a und die Überwachungsdaten des Endpunkts 115b von seinem Überwachungs-Agent 205b.
  • Unter Bezugnahme auf 3B tritt eine Fehlfunktion der Interaktion mit einem (fehlerhaft funktionierenden) Überwachungs-Agent auf, wie beispielsweise dem Überwachungs-Agent 205a. Dies kann zum Beispiel geschehen, wenn der Überwachungs-Agent 205a abstürzt (mit seiner Fehlfunktion, die erfasst wird, wenn der Überwachungsserver 230 die entsprechenden Überwachungsdaten nicht mehr empfängt); trotzdem wird der entsprechende Endpunkt 115a (mit seinem Diagnose-Agent 270a) immer noch ausgeführt.
  • In diesem Fall, wie in 3C gezeigt, übergibt der Überwachungsserver 230 in der Lösung gemäß einer Ausführungsform der vorliegenden Offenbarung eine Sammelanforderung für die Protokolldaten des Überwachungs-Agent 205a an einen anderen (Dienst-)Überwachungs-Agent (d.h. den Überwachungs-Agent 205b in dem zur Debatte stehenden Beispiel). Der Überwachungs-Agent 205b übergibt die Sammelanforderung an seinen (Dienst-)Diagnose-Agent 270b. Der Diagnose-Agent 270b übergibt wiederum eine Abrufanforderung für die Protokolldaten des Überwachungs-Agent 205a an seinen (Ziel-)Diagnose-Agent 270a.
  • Unter Bezugnahme auf 3D ruft der Diagnose-Agent 270a in Reaktion darauf (aus dem Protokolldaten-Repository 220a) die Protokolldaten des Überwachungs-Agent 205a ab. Der Diagnose-Agent 270a gibt die Protokolldaten des Überwachungs-Agent 205a anschließend an den Diagnose-Agent 270b zurück. Der Diagnose-Agent 270b gibt die Protokolldaten des Überwachungs-Agent 205a an den Überwachungs-Agent 205b zurück. Der Überwachungs-Agent 205b gibt die Protokolldaten des Überwachungs-Agent 205a wiederum an den Überwachungsserver 230 zurück.
  • Die oben beschriebene Lösung setzt eine ad-hoc gemeinschaftliche (Peer-to-Peer-)Infrastruktur unter den Diagnose-Agents 270a, 270b zum Sammeln der Protokolldaten von ihren Überwachungs-Agents 205a, 205b um (oder allgemeiner ausgedrückt, von beliebigen anderen Diagnosedaten von beliebigen anderen Softwareprogrammen).
  • Auf diese Weise können die Protokolldaten des (fehlerhaft funktionierenden) Überwachungs-Agent 205a auch dann gesammelt werden, wenn auf seinen Endpunkt 115a nicht direkt zugegriffen werden kann. Dieses Ergebnis kann auch erreicht werden, ohne irgendein Eingreifen durch den Nutzer des Endpunkts 115a zu erfordern; damit wird eine Störung des Nutzers vermieden, und die zum Beheben einer Fehlfunktion erforderliche Zeit wird beträchtlich verkürzt, was sich vorteilhaft auf eine entsprechende Dienstgüte auswirkt (sowohl in Bezug auf Kundenzufriedenheit als auch Leistung der Überwachungsanwendung).
  • Des Weiteren wird die Sammlung der Protokolldaten durch den Überwachungsserver 230 weiterhin durch Nutzen der (standardmäßigen) Datenaustauschverbindungen mit den Überwachungs-Agents 205a, 205b umgesetzt (in diesem Fall mit dem Überwachungs-Agent 205b zum Sammeln der Diagnosedaten des Überwachungs-Agent 205a); daher können die Datenaustauschverbindungen recht effektiv sein. Auf jeden Fall stellt die gemeinsame Nutzung der Protokolldaten durch die Diagnose-Agents 270a, 270b keinerlei Gefährdung des Datenschutzes dar, da sie nach Belieben von den Nutzern gesteuert werden kann (z.B. nur zwischen ihren Endpunkten 115a, 115b).
  • Unter folgender Bezugnahme auf 4A bis 4B wird eine Aktivitätsdarstellung gezeigt, die den Ablauf von Aktivitäten in Bezug auf eine Umsetzung der Lösung gemäß einer Ausführungsform der vorliegenden Offenbarung beschreibt.
  • Insbesondere stellt die Darstellung einen beispielhaften Prozess zum Ausführen von Diagnoseaktivitäten an den oben beschriebenen Endpunkten mit einem Verfahren 400 dar. In dieser Beziehung kann jeder Block eine oder mehrere ausführbare Anweisungen zum Umsetzen der angegebenen logischen Funktion auf der relevanten Datenverarbeitungsmaschine darstellen.
  • Ausgehend von dem Verantwortlichkeitsbereich des Bereitstellungs-Agent eines allgemeinen Endpunkts wird am Block 402 jede Bereitstellungsanforderung von dem Bereitstellungsserver (in der Figur nicht gezeigt) überwacht. Soweit dies für die vorliegende Offenbarung relevant ist, fährt der Prozess mit Block 404 fort, wenn eine Bereitstellungsanforderung zum Bereitstellen eines neuen Softwareprogramms (oder einer Aktualisierung davon) auf dem Endpunkt empfangen wird (d.h. dem Überwachungs-Agent in dem zur Debatte stehenden Beispiel). In Reaktion darauf wird der Überwachungs-Agent durch Herunterladen eines entsprechenden Softwarepakets (zum Beispiel von einem in der Figur nicht gezeigten Bereitstellungsdepot) und anschließendes Anwenden auf den Endpunkt bereitgestellt, um den Überwachungs-Agent entsprechend zu installieren und zu konfigurieren.
  • Am Block 406 wird anschließend ein Test ausgeführt, um zu überprüfen, ob der Diagnose-Agent am Endpunkt bereits verfügbar ist. Falls nicht, (was bedeutet, dass dies das erste zugehörige Softwareprogramm ist, das auf dem Endpunkt bereitgestellt wird), wird am Block 408 auch der Diagnose-Agent (der entweder in demselben Softwarepaket wie der Überwachungs-Agent enthalten ist oder mit einem dedizierten Softwarepaket bereitgestellt wird) auf dem Endpunkt bereitgestellt. In der Fortsetzung mit Block 410 wird der Diagnose-Agent in einem dedizierten Prozess gestartet; auf diese Weise wird der Diagnose-Agent ohne Berücksichtigung irgendeiner Fehlfunktion der anderen Softwareprogramme des Endpunkts weiterhin ausgeführt (sofern die Fehlfunktion nicht den Betrieb des gesamten Endpunkts beeinträchtigt). Der Diagnose-Agent liest am Block 412 seine Diagnosekonfiguration (zum Beispiel in einer oder mehreren XML-Dateien), um die Diagnosedaten der auf dem Endpunkt ausgeführten Softwareprogramme zu bestimmen, die mit den anderen Endpunkten des Nutzers gemeinsam genutzt werden können (d.h. die Protokolldaten des Überwachungs-Agent in dem zur Debatte stehenden Beispiel); dieselbe Operation wird auch in Reaktion auf eine beliebige Änderung der Diagnosekonfiguration ausgeführt (in der Figur nicht gezeigt). Unter folgender Bezugnahme auf Block 414 erfasst der Diagnose-Agent die Diagnose-Agents, die auf den anderen Endpunkten des Nutzers verfügbar sind (zum Beispiel durch Rundsenden einer entsprechenden Anforderung in einem Intranet davon und Überwachen einer entsprechenden Antwort mit derselben Anforderung, die auch von den anderen Diagnose-Agents verwendet wird, um seine Verfügbarkeit festzustellen). Der Prozess kehrt danach zum Block 402 zurück und wartet auf eine nächste Bereitstellungsanforderung; derselbe Punkt wird auch direkt von Block 406 aus erreicht, wenn der Diagnose-Agent bereits auf dem Endpunkt verfügbar ist.
  • Auf vollständig unabhängige Weise überwacht der Überwachungsserver in seinem Verantwortlichkeitsbereich jede Datenaustauschverbindung von den Überwachungs-Agents aller seiner Nutzer. Zu diesem Zweck (soweit dies für die vorliegende Offenbarung relevant ist) wird kontinuierlich eine Schleife ausgeführt, indem am Block 416 überprüft wird, ob von irgendeinem Überwachungs-Agent Überwachungsdaten empfangen worden sind. Falls dies so ist, fügt der Überwachungsserver die Überwachungsdaten zu einem entsprechenden Eintrag seines Überwachungsdaten-Repository am Block 418 hinzu. Der Prozess kehrt dann zum Block 416 zurück, um dieselben Operationen wie vorher beschrieben zu wiederholen. Wenn umgekehrt keine Überwachungsdaten empfangen worden sind, wird am Block 420 ein weiterer Test ausgeführt, um zu überprüfen, ob ein (Überwachungs-)Zeitlimit irgendwelcher Überwachungs-Agents (zum Beispiel um das 1,5-bis 3-fache einer Dauer ihrer Messungen) abgelaufen ist. Falls nicht, kehrt der Prozess auch in diesem Fall zum Block 416 zurück und wartet wieder auf die Überwachungsdaten. Wenn umgekehrt das Zeitlimit eines Überwachungs-Agent abgelaufen ist (was bedeutet, dass eine Fehlfunktion aufgetreten sein kann, da der Überwachungsserver seine Überwachungsdaten nicht mehr empfängt), wird eine Sammelanforderung für die Protokolldaten dieses Überwachungs-Agent am Block 422 übergeben.
  • Unter Bezugnahme auf den Verantwortlichkeitsbereich des Überwachungs-Agent eines allgemeinen Endpunkts wird am Block 424 jede Datenaustauschverbindung von dem Überwachungsserver überwacht. Soweit es für die vorliegende Offenbarung relevant ist, fährt der Prozess mit Block 426 fort, wenn eine Sammelanforderung empfangen wurde; an diesem Punkt verzweigt sich der Aktivitätsablauf gemäß dem Typ der Sammelanforderung. Insbesondere, wenn die Sammelanforderung lokal ist, da sie sich auf die Protokolldaten des Überwachungs-Agent selbst bezieht (die von dem Überwachungsserver am Block 422 empfangen werden), werden die erforderlichen Protokolldaten am Block 428 abgerufen. Diese Protokolldaten werden am Block 430 an den Überwachungsserver zurückgegeben (mit dem Aktivitätsablauf in dem Verantwortlichkeitsbereich des Überwachungs-Agent, der zum Block 424 zurückkehrt, um dieselben Operationen wie oben beschrieben zu wiederholen, was aus Gründen der Einfachheit in der Figur nicht gezeigt ist).
  • Unter erneuter Bezugnahme auf den Verantwortlichkeitsbereich des Überwachungsservers überwacht dieser die Protokolldaten, die für den Überwachungs-Agent am Block 422 angefordert wurden. Zu diesem Zweck wird kontinuierlich eine Schleife ausgeführt, indem am Block 432 überprüft wird, ob diese Protokolldaten empfangen worden sind. Falls dies so ist, speichert der Überwachungsserver die Protokolldaten am Block 434 in seinem Protokolldaten-Repository (zum Beispiel für deren Analyse durch den Systemadministrator, der entsprechend gewarnt wird). Danach kehrt der Prozess zum Block 416 zurück, um dieselben Operationen wie oben beschrieben zu wiederholen. Wenn umgekehrt die Protokolldaten noch nicht empfangen worden sind, wird am Block 436 ein weiterer Test ausgeführt, um zu überprüfen, ob ein entsprechendes (Diagnose-)Zeitlimit (zum Beispiel 1 bis 2 Sek.) abgelaufen ist. Falls nicht, kehrt der Prozess zum Block 432 zurück und wartet wieder auf die Protokolldaten. Wenn umgekehrt das Zeitlimit abgelaufen ist, ohne dass die Protokolldaten empfangen wurden, geht der Aktivitätsablauf zu Block 438 über. In diesem Fall ist wahrscheinlich eine Fehlfunktion des Überwachungs-Agent aufgetreten (er ist zum Beispiel abgestürzt), und daher wird ein anderer (Dienst-)Überwachungs-Agent für diesen (fehlerhaft funktionierenden) Überwachungs-Agent ausgewählt. Zum Beispiel ist der Dienstüberwachungs-Agent der Überwachungs-Agent, der (von all den anderen Überwachungs-Agents, die nicht fehlerhaft funktionieren) dem fehlerhaft funktionierenden Überwachungs-Agent gemäß einem oder mehreren entsprechenden Messwerten (wie beispielsweise gemäß einer Qualität einer Netzwerkverbindung zwischen ihren Endpunkten definiert) am nächsten liegt. Eine Sammelanforderung für die Protokolldaten des fehlerhaft funktionierenden Überwachungs-Agents wird dann am Block 440 an den Dienstüberwachungs-Agent übergeben.
  • Der Überwachungs-Agent eines allgemeinen Endpunkts empfängt diese Sammelanforderung wie oben am Block 424 und fährt dann mit Block 426 fort. In diesem Fall ist die Sammelanforderung entfernt angeordnet, da sie sich nicht auf die Protokolldaten des (Dienst-)Überwachungs-Agents selbst bezieht; daher geht der Aktivitätsablauf zu Block 442 über, wobei die Sammelanforderung an den entsprechenden (Dienst-)Diagnose-Agent mit dem Aktivitätsablauf in dem Verantwortlichkeitsbereich des Dienstüberwachungs-Agent weitergeleitet wird, der zum Block 424 zurückkehrt und auf eine nächste Datenaustauschverbindung von dem Überwachungsserver wartet, was aus Gründen der Einfachheit in der Figur nicht gezeigt ist.
  • Unter Bezugnahme auf den Verantwortlichkeitsbereich des Diagnose-Agent eines allgemeinen Endpunkts überwacht dieser am Block 444 jede Anforderung von seinem Überwachungs-Agent oder von den anderen Diagnose-Agents. Der Prozess fährt mit Block 446 fort, sobald eine Anforderung empfangen worden ist; an diesem Punkt verzweigt sich der Aktivitätsablauf gemäß dem Typ der Anforderung. Insbesondere, wenn der (Dienst-)Diagnose-Agent eine Sammelanforderung für die Protokolldaten des fehlerhaft funktionierenden Überwachungs-Agent (von seinem Dienstüberwachungs-Agent am Block 442) empfangen hat, wird eine entsprechende Abrufanforderung für die Protokolldaten des fehlerhaft funktionierenden Überwachungs-Agent am Block 448 an entsprechenden (Ziel-)Diagnose-Agent übergeben.
  • Der Dienstdiagnose-Agent startet anschließend eine Überwachung der Protokolldaten des fehlerhaft funktionierenden Überwachungs-Agent. Zu diesem Zweck wird kontinuierlich eine Schleife ausgeführt, indem am Block 450 überprüft wird, ob diese Protokolldaten empfangen worden sind. Ist dies der Fall, gibt der Dienstdiagnose-Agent am Block 452 die Protokolldaten an seinen Dienstüberwachungs-Agent zurück. Wenn umgekehrt die Protokolldaten noch nicht empfangen worden sind, wird im Block 454 ein weiterer Test ausgeführt, um zu überprüfen, ob ein entsprechendes (Abruf-)Zeitlimit (zum Beispiel gleich 1 bis 2 Sek.) abgelaufen ist. Falls nicht, kehrt der Prozess zum Block 450 zurück und wartet wieder auf die Protokolldaten. Wenn umgekehrt das Zeitlimit ohne Empfangen der Protokolldaten abgelaufen ist, geht der Aktivitätsablauf zu Block 456 über. In diesem Fall werden die Protokolldaten des fehlerhaft funktionierenden Überwachungs-Agent auf eine Angabe einer fehlenden Antwort von seinem Zieldiagnose-Agent gesetzt, was bedeutet, dass wahrscheinlich ein Fehler des entsprechenden (Ziel-)Endpunkts (zum Beispiel eine globale Fehlfunktion oder ein kompletter Stopp) eingetreten ist; der Dienstdiagnose-Agent gibt dann diese Protokolldaten wie oben an seinen Dienstüberwachungs-Agent zurück. Nach Rückkehr zum Block 446, wenn der (Ziel-)Diagnose-Agent eine Abrufanforderung seines (fehlerhaft funktionierenden) Überwachungs-Agent von einem anderen (Dienst-)Diagnose-Agent (wie oben am Block 448) empfangen hat, geht der Prozess zu Block 458 über; an diesem Punkt ruft der Zieldiagnose-Agent die Protokolldaten seines fehlerhaft funktionierenden Überwachungs-Agent ab. In der Fortsetzung mit Block 460 gibt der Zieldiagnose-Agent diese Protokolldaten an den Dienstdiagnose-Agent zurück (der sie wie oben am Block 450 empfängt). Auf jeden Fall kehrt der Aktivitätsablauf in dem Verantwortlichkeitsbereich des Diagnose-Agent vom Block 452, vom Block 456 oder vom Block 460 zum Block 444 zurück, um dieselben Operationen wie oben beschrieben zu wiederholen, was aus Gründen der Einfachheit in der Figur nicht gezeigt ist.
  • Unter erneuter Bezugnahme auf den Verantwortlichkeitsbereich des (Dienst-)Überwachungs-Agent überwacht dieser am Block 462 die Protokolldaten des fehlerhaft funktionierenden Überwachungs-Agent, die im Block 442 angefordert wurden. Sobald diese Protokolldaten empfangen worden sind, werden sie im Block 464 an den Überwachungsserver zurückgegeben (mit dem Aktivitätsablauf im Verantwortlichkeitsbereich des Dienstüberwachungs-Agent, der zum Block 424 zurückkehrt, um dieselben Operationen wie oben beschrieben zu wiederholen, was in der Figur aus Gründen der Einfachheit nicht gezeigt ist).
  • Unter erneuter Bezugnahme auf den Verantwortlichkeitsbereich des Überwachungsservers überwacht dieser am Block 466 die Protokolldaten des fehlerhaft funktionierenden Überwachungs-Agent, die am Block 440 für den Dienstüberwachungs-Agent angefordert wurden. Sobald diese Protokolldaten empfangen worden sind, speichert sie der Überwachungsserver im Block 468 in seinem Protokolldaten-Repository. Der Prozess kehrt danach zum Block 416 zurück, um dieselben Operationen wie oben beschrieben zu wiederholen.
  • Modifizierungen
  • Um lokale und spezifische Anforderungen zu erfüllen, kann ein Fachmann selbstverständlich viele logische und/oder physische Modifizierungen und Änderungen auf die vorliegende Offenbarung anwenden. Obwohl diese Offenbarung insbesondere mit einem gewissen Grad von Besonderheit in Bezug auf eine oder mehrere ihrer Ausführungsformen beschrieben worden ist, sollte klar sein, dass verschiedene Auslassungen, Ersetzungen und Änderungen von Form und Details sowie weitere Ausführungsformen möglich sind. Insbesondere können verschiedene Ausführungsformen der vorliegenden Offenbarung sogar ohne die spezifischen Details (wie beispielsweise die numerischen Werte) ausgeführt werden, die in der vorhergehenden Beschreibung dargelegt wurden, um ein besseres Verständnis bereitzustellen; umgekehrt können bekannte Merkmale ausgelassen oder vereinfacht worden sein, um die Beschreibung nicht mit unnötigen Einzelheiten unklar zu machen. Des Weiteren ist ausdrücklich beabsichtigt, dass bestimmte Elemente und/oder Verfahrensschritte, die in Verbindung mit einer beliebigen Ausführungsform der vorliegenden Offenbarung beschrieben wurden, in einer beliebigen anderen Ausführungsform im Zuge einer allgemeinen Auslegungsauswahl integriert werden können. Auf jeden Fall werden Ordnungszahlen oder andere Qualifikationsmerkmale nur als Bezeichnungen verwendet, um Elemente mit demselben Namen voneinander zu unterscheiden, sie bezeichnen selbst aber keinerlei Priorität, Vorrang oder Reihenfolge. Des Weiteren sollten die Ausdrücke von umfassen, aufweisen, haben, enthalten und verbunden sein (und alle Formen davon) mit einer offenen, nicht-erschöpfenden Bedeutung verstanden werden (d.h. nicht auf die genannten Elemente beschränkt), die Ausdrücke von auf Grundlage von, abhängig von, gemäß, in Abhängigkeit von (und sämtliche Formen davon) sollten eine nicht-ausschließende Beziehung angeben (d.h. mit möglichen weiteren dazugehörigen Variablen), der Begriff ein/eine sollte als ein oder mehrere Elemente verstanden werden (sofern nicht ausdrücklich anders angegeben), und der Ausdruck Mittel für (oder jede Mittelplus-Funktion-Formulierung) sollte als jede Struktur verstanden werden, die zum Ausführen der relevanten Funktion angepasst oder konfiguriert ist.
  • Zum Beispiel stellt eine Ausführungsform ein Verfahren zum Ausführen von Diagnoseaktivitäten in einer Datenverarbeitungsumgebung bereit. Das Verfahren weist Interagieren mit einer Mehrzahl von Softwareprogrammen auf, die auf einer oder mehreren Endpunkt-Datenverarbeitungsmaschinen ausgeführt werden. Das Verfahren weist ferner die folgenden Schritte in Reaktion auf eine Fehlfunktion des Interagierens mit einem fehlerhaft funktionierenden Softwareprogramm von den Softwareprogrammen auf, die auf einer Ziel-Datenverarbeitungsmaschine der Endpunkt-Datenverarbeitungsmaschinen ausgeführt werden. Eine Sammelanforderung für Diagnosedaten des fehlerhaft funktionierenden Softwareprogramms wird an ein Dienstsoftwareprogramm der Softwareprogramme übergeben, das von dem fehlerhaft funktionierenden Softwareprogramm verschieden ist, um das Dienstsoftwareprogramm zu veranlassen, die Diagnosedaten des fehlerhaft funktionierenden Softwareprogramms von einem Zieldiagnose-Agent abzurufen, der auf der Ziel-Datenverarbeitungsmaschine ausgeführt wird. Die Diagnosedaten des fehlerhaft funktionierenden Softwareprogramms werden von dem Dienstsoftwareprogramm empfangen.
  • Die Diagnoseaktivitäten, die ausgeführt werden sollen, können jedoch von jedem Typ sein (zum Beispiel zur Fehlerbehebung (Debugging) von Softwareprogrammen während der Entwicklung, zum Wiederherstellen des korrekten Betriebs der Softwareprogramme in einer Produktionsumgebung entweder in Echtzeit oder global), und sie können auf jede Datenverarbeitungsumgebung angewendet werden (siehe unten). Die Endpunkt-Datenverarbeitungsmaschinen können von beliebiger Anzahl und von jedem Typ sein, wobei jede eine beliebige Anzahl und einen beliebigen Typ von Softwareprogrammen ausführt (siehe unten); die Interaktion mit den Softwareprogrammen kann von jedem Typ sein (zum Beispiel auf Grundlage von Anforderungen und entsprechenden Antworten). Die Fehlfunktion kann von jedem Typ sein (siehe unten), die Sammelanforderung kann auf beliebige Weise übergeben werden (zum Beispiel sogar direkt ohne vorherigen Versuch, die Diagnosedaten von dem Softwareprogramm selbst zu sammeln); des Weiteren können die Diagnosedaten auf beliebige Weise empfangen werden (siehe unten), und sie können von jedem Typ sein (zum Beispiel Systemspeicherauszüge).
  • In einer Ausführungsform weist der Schritt zum Übergeben einer Sammelanforderung ein Übergeben der Sammelanforderung an das Dienstsoftwareprogramm auf, das auf einer Dienst-Datenverarbeitungsmaschine der Endpunkt-Datenverarbeitungsmaschinen ausgeführt wird, die von der Ziel-Datenverarbeitungsmaschine verschieden sind.
  • Jedoch wird die Möglichkeit eines Übergebens der Sammelanforderung an das Dienstsoftwareprogramm, das auf derselben Ziel-Datenverarbeitungsmaschine des fehlerhaft funktionierenden Softwareprogramms ausgeführt, nicht ausgeschlossen.
  • In einer Ausführungsform wird ein Diagnose-Agent auf jeder Endpunkt-Datenverarbeitungsmaschine ausgeführt. Der Schritt eines Übergebens einer Sammelanforderung weist ein Bereitstellen der Sammelanforderung an das Dienstsoftwareprogramm auf, um das Dienstsoftwareprogramm zu veranlassen, die Diagnosedaten des fehlerhaft funktionierenden Softwareprogramms von dem Diagnose-Agent der Ziel-Datenverarbeitungsmaschine (der als Zieldiagnose-Agent arbeitet), über den Diagnose-Agent der Dienstdatenverarbeitungsmaschine abzurufen (der als Dienstdiagnose-Agent arbeitet).
  • Der Diagnose-Agent kann jedoch von jedem Typ sein (zum Beispiel in einem dedizierten Thread ausgeführt werden). Auf jeden Fall ist die Möglichkeit für das Dienstsoftwareprogramm, die Sammelanforderung an den Zieldiagnose-Agent direkt zu übergeben, nicht ausgeschlossen.
  • In einer Ausführungsform weist das Verfahren die folgenden Schritte auf der Dienst-Datenverarbeitungsmaschine auf. Die Sammelanforderung wird von einer entfernt angeordneten Anwendung durch das Dienstsoftwareprogramm empfangen. Die Sammelanforderung wird durch das Dienstsoftwareprogramm an den Dienstdiagnose-Agent übergeben. Eine Abrufanforderung für die Diagnosedaten des fehlerhaft funktionierenden Softwareprogramms wird durch den Dienstdiagnose-Agent an den Zieldiagnose-Agent übergeben. Die Diagnosedaten des fehlerhaft funktionierenden Softwareprogramms werden durch den Dienstdiagnose-Agent von dem Zieldiagnose-Agent empfangen. Die Diagnosedaten des fehlerhaft funktionierenden Softwareprogramms werden durch den Dienstdiagnose-Agent an das Dienstsoftwareprogramm zurückgegeben. Die Diagnosedaten des fehlerhaft funktionierenden Softwareprogramms werden von dem Dienstsoftwareprogramm an die entfernt angeordnete Anwendung zurückgegeben.
  • Die Sammelanforderung kann jedoch von jeder entfernt angeordneten Anwendung (siehe unten) empfangen werden, und sie kann für den Dienstdiagnose-Agent auf jede Weise bereitgestellt werden, zum Beispiel mit dem Dienstdiagnose-Agent, der sie direkt abfängt (wie beispielsweise mit Hook-Techniken (Programmeinstiegsmöglichkeiten) oder durch Wrapping des Dienstsoftwareprogramms); des Weiteren kann die Abrufanforderung von jedem Typ sein (zum Beispiel eine einfache Weiterleitung der Sammelanforderung).
  • In einer Ausführungsform weist das Verfahren die folgenden Schritte auf der Ziel-Datenverarbeitungsmaschine auf. Die Abrufanforderung wird von dem Dienstdiagnose-Agent durch den Zieldiagnose-Agent empfangen. Die Diagnosedaten des fehlerhaft funktionierenden Softwareprogramms werden von dem Zieldiagnose-Agent empfangen. Die Diagnosedaten des fehlerhaft funktionierenden Softwareprogramms werden durch den Dienstdiagnose-Agent an den Zieldiagnose-Agent zurückgegeben.
  • Die Diagnosedaten können jedoch auf beliebige Weise für das Dienstsoftwareprogramm bereitgestellt werden (zum Beispiel durch einfaches entfernt angeordnetes Aktivieren des Zugriffs).
  • In einer Ausführungsform weist das Verfahren ferner die folgenden Schritte auf jeder Endpunkt-Datenverarbeitungsmaschine auf. Ein neues Softwareprogramm von den Softwareprogrammen wird auf der Endpunkt-Datenverarbeitungsmaschine bereitgestellt.
  • Ein neuer Diagnose-Agent von den Diagnose-Agents wird auf der Endpunkt-Datenverarbeitungsmaschine in Verbindung mit der Bereitstellung des neuen Softwareprogramms als Reaktion darauf bereitgestellt, dass keines der Softwareprogramme bereits auf der Endpunkt-Datenverarbeitungsmaschine verfügbar ist.
  • Der Diagnose-Agent kann jedoch auf beliebige Weise bereitgestellt werden, selbst unabhängig von der Bereitstellung der Softwareprogramme (zum Beispiel durch direktes Installieren, wenn die Endpunkt-Datenverarbeitungsmaschine ausgeliefert wird).
  • In einer Ausführungsform weist das Verfahren ferner die folgenden Schritte auf jeder Endpunkt-Datenverarbeitungsmaschine auf. Eine oder mehrere Arbeitsspeicherstrukturen (die die Diagnosedaten jedes Softwareprogramms speichern, das auf der Endpunkt-Datenverarbeitungsmaschine ausgeführt wird) werden von dem Diagnose-Agent der Endpunkt-Datenverarbeitungsmaschine gemeinsam mit dem Diagnose-Agent jeder anderen Endpunkt-Datenverarbeitungsmaschine gemäß entsprechenden Konfigurationsinformationen genutzt.
  • Die Arbeitsspeicherstrukturen können in beliebiger Anzahl (zum Beispiel dediziert für jedes Softwareprogramm oder gemeinsam für alle/einen Teil davon) und von beliebigem Typ vorhanden sein (zum Beispiel im Common Log Format); des Weiteren können die Konfigurationsinformationen von beliebigem Typ sein (zum Beispiel im JASON-Format). Auf jeden Fall ist eine grundlegende Umsetzung, bei der eine Angabe der gemeinsam zu nutzenden Diagnosedaten in dem Diagnose-Agent fest codiert wird, nicht ausgeschlossen.
  • In einer Ausführungsform weist das Verfahren ferner den folgenden Schritt auf jeder Endpunkt-Datenverarbeitungsmaschine auf. Der Diagnose-Agent jeder anderen Endpunkt-Datenverarbeitungsmaschine wird durch den Diagnose-Agent der Endpunkt-Datenverarbeitungsmaschine erfasst.
  • Die Diagnose-Agents der anderen Endpunkt-Datenverarbeitungsmaschinen können jedoch auf beliebige Weise und jederzeit erfasst werden (zum Beispiel periodisch durch ein Spider-Suchprogramm); auf jeden Fall kann die Definition der gesamten Datenverarbeitungsumgebung mit ihren sämtlichen Diagnose-Agents zentral verwaltet und auf die Endpunkt-Datenverarbeitungsmaschinen heruntergeladen werden, ohne lokal irgendeine Erfassungsaktivität ausführen zu müssen.
  • In einer Ausführungsform weist der Schritt eines Übergebens einer Sammelanforderung ein Auswählen des Dienstsoftwareprogramms aus den Softwareprogrammen, das von dem fehlerhaft funktionierenden Softwareprogramm verschieden ist, gemäß einem oder mehreren Auswahlkriterien auf.
  • Die Auswahlkriterien können jedoch in beliebiger Anzahl und von beliebigem Typ vorhanden sein (zum Beispiel auf Grundlage einer Arbeitslast für die Endpunkt-Datenverarbeitungsmaschinen); auf jeden Fall wird eine einfache beliebige Auswahl des Dienstsoftwareprogramms nicht ausgeschlossen.
  • In einer Ausführungsform weist der Schritt eines Interagierens mit einer Mehrzahl von Softwareprogrammen ein kontinuierliches Empfangen von Betriebsdaten von jedem Softwareprogramm auf; das Verfahren weist ferner den Schritt eines Erfassens der Fehlfunktion des Interagierens mit dem fehlerhaft funktionierenden Softwareprogramm in Reaktion auf ein fehlendes Empfangen der Betriebsdaten von diesem auf.
  • Die Betriebsdaten können jedoch von beliebigem Typ sein (bis hin zu einem einfachen Überwachungssignal), und sie können mit einer beliebigen Taktung (zum Beispiel durch Signalisieren jeder kritischen Bedingung, sobald sie auftritt) bereitgestellt werden; des Weiteren kann der fehlende Empfang der Betriebsdaten auf beliebige Weise erfasst werden (zum Beispiel nur nach zwei oder mehr aufeinanderfolgenden Verlusten davon). Auf jeden Fall können verschiedene, zusätzliche oder alternative Techniken verwendet werden, um jeden Typ von Fehlfunktion der Softwareprogramme zu bestimmen (zum Beispiel, wenn eine Anforderung nicht die entsprechende Antwort innerhalb eines maximalen Zeitraums empfängt).
  • In einer Ausführungsform ist jedes Softwareprogramm ein Überwachungs-Agent einer Überwachungsanwendung; der Schritt eines Empfanges von Betriebsdaten weist ein Empfangen von Überwachungsdaten der entsprechenden Endpunkt-Datenverarbeitungsmaschine von jedem Überwachungs-Agent durch einen Überwachungsserver der Überwachungsanwendung auf.
  • Die Softwareprogramme können jedoch von verschiedenem, zusätzlichem oder alternativem Typ sein (zum Beispiel Lastausgleich-Agents, Bereitstellungs-Agents) mit ähnlichen Erwägungen, die für die entsprechenden Betriebsdaten gelten (zum Beispiel Arbeitslastdaten, Bereitstellungsergebnisse).
  • In einer Ausführungsform werden der Schritt eines Übergebens einer Sammelanforderung und der Schritt eines Empfangens der Diagnosedaten durch eine entfernt angeordnete Entität ausgeführt, die abgesehen von einem Interagieren mit den entsprechenden Softwareprogrammen keinen Zugriff auf die Endpunkt-Datenverarbeitungsmaschinen hat.
  • Dieselben Schritte können jedoch von jeder entfernt angeordneten Entität ausgeführt werden (zum Beispiel dem Diagnosemanager). Auf jeden Fall verhindert nichts die Verwendung derselben Techniken, wie oben beschrieben, in jedem anderen Szenario (selbst wenn eine Art von Zugriff auf die Endpunkt-Datenverarbeitungsmaschinen verfügbar ist, zum Beispiel zum Verfolgen ihrer Ressourcenverwendung).
  • In einer Ausführungsform weist der Schritt eines Interagierens mit einer Mehrzahl von Softwareprogrammen ein Interagieren mit den Softwareprogrammen durch eine Softwareanwendung auf, die als Dienst in einer Cloud-Computing-Umgebung bereitgestellt wird.
  • Die Cloud-Computing-Umgebung kann von beliebigem Typ sein (zum Beispiel hybrid), und die Softwareanwendung kann auf beliebige Weise bereitgestellt werden (zum Beispiel gemäß dem PaaS-Modell). Auf jeden Fall kann dieselbe Technik auch auf jede andere Datenverarbeitungsumgebung angewendet werden (zum Beispiel vom Typ Client-Server).
  • Im Allgemeinen gelten ähnliche Erwägungen, wenn dieselbe Lösung mit einem gleichwertigen Verfahren umgesetzt wird (indem ähnliche Schritte mit denselben Funktionen mit mehreren Schritten oder Abschnitten davon verwendet werden, einige Schritte entfernt werden, nicht wesentlich sind, oder ferner optionale Schritte hinzugefügt werden); des Weiteren können die Schritte in einer anderen Reihenfolge, gleichzeitig oder (zumindest teilweise) verschachtelt ausgeführt werden.
  • Abschnitte von einer oder mehreren Ausführungsformen der Erfindung können in einer Cloud-Computing-Umgebung ausgeführt werden. Es ist von vornherein zu verstehen, dass, obwohl diese Offenbarung eine ausführliche Beschreibung zu Cloud-Computing enthält, eine Umsetzung der hierin zitierten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt ist. Die Ausführungsformen der vorliegenden Erfindung sind stattdessen fähig, in Verbindung mit jedem anderen Typ einer jetzt bekannten oder später entwickelten Datenverarbeitungsumgebung umgesetzt zu werden.
  • Cloud-Computing ist ein Modell einer Dienstleistung zum Ermöglichen eines bequemen bedarfsabhängigen Netzwerkzugriffs (On-Demand-Netzwerkzugriffs) auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerke, Netzbandbreite, Server, Verarbeitung, Arbeitsspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste), die mit minimalem Verwaltungsaufwand oder Interaktion mit einem Anbieter des Diensts rasch bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Merkmale, mindestens drei Dienstmodelle und mindestens vier Nutzungsmodelle enthalten.
  • Die Merkmale sind wie folgt:
    On-Demand-Selfservice: Ein Cloud-Nutzer kann einseitig und je nach Bedarf automatisch Datenverarbeitungs-Ressourcen, wie z.B. Serverzeit und Netzwerkspeicher, ohne erforderliche menschliche Interaktion mit dem Anbieter des Diensts bereitstellen.
  • Breiter Netzwerkzugriff: Funktionen stehen über ein Netzwerk zur Verfügung, und auf sie wird über Standardmechanismen zugegriffen, die eine Verwendung über heterogene Thin Client- oder Thick Client-Plattformen unterstützen (z.B. Mobiltelefone, Laptops und PDAs).
  • Ressourcen-Pooling: Die Datenverarbeitungsressourcen des Anbieters sind in einem Pool zusammengeschlossen, um unter Verwendung eines Multi-Tenant-Modells mehreren Nutzern mit unterschiedlichen physischen und virtuellen Ressourcen zu dienen, deren Zuweisung oder Zuweisungsaufhebung je nach Bedarf dynamisch erfolgt. Es herrscht insofern ein Gefühl der Standortunabhängigkeit, als der Nutzer im Allgemeinen keine Kontrolle oder Kenntnis in Bezug auf den genauen Standort der bereitgestellten Ressourcen hat, aber in der Lage sein kann, einen Standort auf einer höheren Abstraktionsebene anzugeben (z.B. Land, Bundesstaat oder Rechenzentrum).
  • Schnelle Elastizität: Funktionen können rasch und flexibel, in einigen Fällen automatisch für eine schnelle Erweiterung bereitgestellt und für eine schnelle Reduzierung rasch freigegeben werden. Für den Nutzer scheinen die zur Bereitstellung verfügbaren Funktionen oft unbegrenzt zu sein und können jederzeit in beliebiger Menge erworben werden.
  • Richtig bemessener Dienst: Cloud-Systeme kontrollieren und optimieren Ressourcen automatisch durch die Nutzung einer Messfunktion auf einer Abstraktionsebene, die dem Diensttyp entspricht (z.B. Speicher, Verarbeitung, Bandbreite und aktive Benutzerkonten). Eine Inanspruchnahme von Ressourcen kann überwacht, kontrolliert und gemeldet werden, was sowohl für den Anbieter als auch den Nutzer des in Anspruch genommenen Dienstes für Transparenz sorgt.
  • Es gibt folgende Dienstmodelle:
    Software as a Service (SaaS): Die für den Nutzer bereitgestellte Funktion besteht darin, die auf einer Cloud-Infrastruktur ausgeführten Anwendungen des Anbieters zu verwenden. Auf die Anwendungen kann über eine Thin Client-Schnittstelle, wie beispielsweise einen Web-Browser (z.B. eMail auf Web-Grundlage), von verschiedenen Client-Geräten aus zugegriffen werden. Weder verwaltet noch kontrolliert der Nutzer die zu Grunde liegende Cloud-Infrastruktur, einschließlich Netzwerk, Server, Betriebssysteme, Speicher oder auch einzelne Anwendungsfunktionen, ausgenommen möglicherweise begrenzte benutzerspezifische Einstellungen einer Anwendungskonfiguration.
  • Platform as a Service (PaaS): Die für den Nutzer bereitgestellte Funktion besteht darin, auf der Cloud-Infrastruktur vom Nutzer erstellte oder erworbene Anwendungen bereitzustellen, die unter Verwendung von Programmiersprachen und Tools erstellt wurden, die von dem Anbieter unterstützt werden. Weder verwaltet noch kontrolliert der Nutzer die zu Grunde liegende Cloud-Infrastruktur, einschließlich Netzwerk, Server, Betriebssysteme oder Speicher, aber er besitzt die Kontrolle über die umgesetzten Anwendungen und möglicherweise die Hosting-Umgebungskonfigurationen von Anwendungen.
  • Infrastructure as a Service (IaaS): Die für den Nutzer bereitgestellte Funktion besteht in der Bereitstellung von Verarbeitung, Speicher, Netzwerken und anderen grundlegenden Datenverarbeitungsressourcen, wobei der Nutzer in der Lage ist, beliebige Software bereitzustellen und auszuführen, zu der auch Betriebssysteme und Anwendungen gehören können. Weder verwaltet noch kontrolliert der Nutzer die zu Grunde liegende Cloud-Infrastruktur, aber er hat die Kontrolle über Betriebssysteme, Speicher, genutzte Anwendungen und möglicherweise eine begrenzte Kontrolle über ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
  • Es gibt folgende Nutzungsmodelle:
    Private Cloud: Die Cloud-Infrastruktur wird ausschließlich für eine Organisation betrieben. Sie kann von der Organisation oder einer Drittpartei verwaltet werden und kann innerhalb oder außerhalb der Geschäftsräume vorhanden sein.
  • Community Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine spezielle Community, die gemeinsame Problemstellungen hat (z.B. Berücksichtigung von Zielsetzung, Sicherheitsanforderungen, Richtlinien und Konformität). Sie kann von den Organisationen oder einer Drittpartei verwaltet werden und kann innerhalb oder außerhalb der Geschäftsräume vorhanden sein.
  • Public Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt und ist im Besitz einer Organisation, die Cloud-Dienste verkauft.
  • Hybrid Cloud: Die Cloud-Infrastruktur ist eine Zusammensetzung von zwei oder mehr Clouds (Private, Community oder Public), die eindeutige Entitäten bleiben, aber durch eine standardisierte oder proprietäre Technologie vereinigt sind, die eine Daten- und Anwendungsportabilität ermöglicht (z.B. Cloud Bursting für einen Lastausgleich zwischen Clouds).
  • Eine Cloud-Datenverarbeitungsumgebung ist dienstorientiert mit einem Schwerpunkt auf Statusungebundenheit, niedriger Kopplung, Modularität und semantischer Interoperabilität. Das Kernstück des Cloud-Computing ist eine Infrastruktur, die ein Netzwerk von miteinander verbundenen Knoten aufweist.
  • Die vorliegende Erfindung kann ein System, ein Verfahren und/oder ein Computerprogrammprodukt sein. Das Computerprogrammprodukt kann ein computerlesbares Speichermedium (oder Speichermedien) mit einem computerlesbaren Programmcode darauf enthalten, um einen Prozessor zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Das computerlesbare Speichermedium kann eine konkrete Einheit sein, die Anweisungen zur Verwendung durch eine Anweisungsausführungseinheit beibehalten und speichern kann. Ein computerlesbares Speichermedium kann zum Beispiel eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiter-Speichereinheit oder jede geeignete Kombination aus dem Vorgenannten sein, es ist aber nicht darauf beschränkt. Eine nicht erschöpfende Liste von spezielleren Beispielen für das computerlesbare Speichermedium enthält Folgendes: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein statischer Arbeitsspeicher (SRAM), ein tragbarer CD-ROM, ein DVD-Laufwerk (DVD), ein Speicherstick, eine Diskette, eine mechanisch verschlüsselte Einheit wie beispielsweise Lochkarten oder erhabene Strukturen in einer Rille mit darauf aufgezeichneten Anweisungen und jede geeignete Kombination des Vorgenannten. Ein computerlesbares Speichermedium, wie hierin verwendet, muss nicht als transitorische Signale per se ausgelegt sein, wie beispielsweise Funkwellen oder andere sich frei verbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder andere Übertragungsmedien verbreiten (z.B. Lichtimpulse, die ein Lichtwellenleiterkabel durchlaufen) oder elektrische Signale, die durch einen Draht übertragen werden.
  • Hierin beschriebene computerlesbare Programmanweisungen können auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten von einem computerlesbaren Speichermedium oder auf einen externen Computer oder eine externe Speichereinheit über ein Netzwerk, zum Beispiel das Internet, ein lokales Netz, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk heruntergeladen werden. Das Netzwerk kann Kupferübertragungsleitungen, Lichtwellenleiter, drahtlose Übertragung, Router, Firewalls, Switches, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerk-Adapterkarte oder Netzwerk-Schnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt computerlesbare Programmanweisungen von dem Netzwerk und leitet die computerlesbaren Programmanweisungen zur Speicherung in einem computerlesbaren Speichermedium in der jeweiligen Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Computerlesbare Programmanweisungen zum Ausführen von Operationen der vorliegenden Erfindung können Assembler-Anweisungen, Anweisungssatzarchitektur-(Instruction Set Architecture) (ISA) Anweisungen, Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, Zustandseinstellungsdaten oder anderer Quellcode oder Objektcode sein, die in jeder Kombination von einer oder mehreren Programmiersprachen, einschließlich Smalltalk, C++ oder dergleichen, und herkömmlichen prozeduralen Programmiersprachen wie der Programmiersprache „C“ oder ähnlichen Programmiersprachen geschrieben sind. Die computerlesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In dem letzteren Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über jeden Typ von Netzwerk verbunden werden, einschließlich ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann zu einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Nutzung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, zum Beispiel programmierbare Logikschaltungen, im Feld programmierbare Gatter-Arrays (FPGA) oder programmierbare Logik-Arrays (PLA) die computerlesbaren Programmanweisungen unter Verwendung von Zustandsinformationen der computerlesbaren Programmanweisungen zum Personalisieren der elektronischen Schaltung ausführen, um Aspekte der vorliegenden Erfindung auszuführen.
  • Aspekte der vorliegenden Erfindung werden hierin unter Bezugnahme auf Veranschaulichungen von Ablaufplänen und/oder Blockschaubildern von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block in den Veranschaulichungen von Ablaufplänen und/oder Blockschaubildern und Kombinationen von Blöcken in den Veranschaulichungen von Ablaufplänen und/oder Blockschaubildern durch computerlesbare Programmanweisungen umgesetzt werden können.
  • Diese computerlesbaren Programmanweisungen können für einen Prozessor eines Mehrzweckcomputers, eines Spezialcomputers oder andere Vorrichtungen, die programmierbare Daten verarbeiten, bereitgestellt werden, um eine Maschine zu erzeugen, sodass die Anweisungen, die über den Prozessor des Computers oder andere Vorrichtungen, die programmierbare Daten verarbeiten, ausgeführt werden, Mittel zum Umsetzen der Funktionen/Handlungen erstellen, die in dem Ablaufplan und/oder dem Block oder den Blöcken des Blockschaubilds angegeben sind. Diese computerlesbaren Programmanweisungen können auch in einem computerlesbaren Speichermedium gespeichert werden, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Weise funktionieren, sodass das computerlesbare Speichermedium mit den darin gespeicherten Anweisungen einen Fertigungsartikel aufweist, einschließlich Anweisungen, die die in dem Ablaufplan und/oder dem Block oder den Blöcken des Blockschaubilds angegebene Funktion/Handlung umsetzen.
  • Die computerlesbaren Programmanweisungen können auch auf einen Computer, andere programmierbare Datenverarbeitungsvorrichtungen oder eine andere Einheit geladen werden, um die Ausführung einer Serie von Arbeitsschritten auf dem Computer, einer anderen programmierbaren Vorrichtung oder anderen Einheit zu veranlassen, um einen über den Computer umgesetzten Prozess zu erzeugen, sodass die Anweisungen, die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer Einheit ausgeführt werden, die Funktionen /Handlungen umsetzen, die in dem Ablaufplan und/oder dem Block oder den Blöcken des Blockschaubilds angegeben sind.
  • Der Ablaufplan und die Blockschaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb von möglichen Umsetzungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. Diesbezüglich kann jeder Block in dem Ablaufplan oder in den Blockschaubildern ein Modul, ein Segment oder einen Abschnitt von Anweisungen darstellen, der eine oder mehrere ausführbare Anweisungen zum Umsetzen der angegebenen logischen Funktion(en) aufweist. In einigen alternativen Umsetzungen können die in dem Block angegebenen Funktionen außerhalb der Reihenfolge auftreten, die in den Figuren angegeben ist. Zum Beispiel können zwei nacheinander gezeigte Blöcke tatsächlich im Wesentlichen parallel ausgeführt werden, oder die Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden, was von der beteiligten Funktionalität abhängt. Es wird ebenfalls angemerkt, dass jeder Block der Blockschaubilder und/oder Veranschaulichung des Ablaufplans und Kombinationen von Blöcken in den Blockschaubildern und/oder der Veranschaulichung des Ablaufplans durch spezielle Systeme auf der Grundlage von Hardware umgesetzt werden können, die die angegebenen Funktionen oder Handlungen ausführen oder Kombinationen von spezieller Hardware und Computeranweisungen ausführen.
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Offenbarung wurden zum Zweck der Veranschaulichung erstellt, sie sollen aber keineswegs erschöpfend oder auf die offenbarten Ausführungsformen eingeschränkt sein. Für Fachleute sind viele Modifizierungen und Variationen offenkundig, die nicht von dem Schutzbereich und dem Erfindungsgedanken der beschrieben Ausführungsformen abweichen. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, der praktischen Anwendung oder technischen Verbesserung gegenüber auf dem Markt gefundenen Technologien zu erklären oder anderen Fachleuten das Verständnis der hierin offenbarten Ausführungsformen zu ermöglichen.
  • Eine weitere Ausführungsform stellt ein System bereit, das Mittel aufweist, die zum Ausführen der Schritte desselben Verfahrens konfiguriert sind. Das Verfahren kann jedoch auf jedem beliebigen System ausgeführt werden. Das System kann auf einer unterschiedlichen Architektur beruhen (zum Beispiel einem lokalen Netzwerk, einem Weitverkehrsnetz, einem Mobilfunk- oder Satelliten-Netz), und es kann jeden Verbindungstyp nutzen (drahtgebunden und/oder drahtlos). Die Umsetzung des Verfahrens auf einem eigenständigen Computer (zum Beispiel zum Ausführen von Diagnoseaktivitäten auf virtuellen Maschinen, die darauf gehostet sind) wird nicht ausgeschlossen. Auf jeden Fall kann jede Datenverarbeitungsmaschine, die zum Umsetzen des Verfahrens verwendet wird, eine andere Struktur haben oder kann ähnliche Elemente aufweisen; des Weiteren ist es möglich, die Datenverarbeitungsmaschine durch eine beliebige Code-Ausführungsentität auf Grundlage entweder einer physischen Maschine oder einer virtuellen Maschine oder irgendeiner Kombination davon zu ersetzen.
  • Im Allgemeinen gelten ähnliche Erwägungen, wenn das System eine unterschiedliche Struktur hat oder gleichwertige Komponenten aufweist oder andere Betriebsmerkmale hat. Auf jeden Fall kann jede Komponente davon in mehrere Elemente getrennt werden, oder zwei oder mehrere Komponenten können zu einem einzigen Element kombiniert werden, wobei jede Komponente repliziert werden kann, um die parallele Ausführung der entsprechenden Operationen zu unterstützen. Des Weiteren, sofern nicht anders angegeben, muss im Allgemeinen keine Interaktion zwischen verschiedenen Komponenten kontinuierlich sein, und sie kann über eine oder mehrere Vermittlungsstellen direkt oder indirekt erfolgen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 8719804 [0016]

Claims (15)

  1. Verfahren zum Ausführen von Diagnoseaktivitäten in einer Datenverarbeitungsumgebung, wobei die Datenverarbeitungsumgebung eine Mehrzahl von Softwareprogrammen aufweist, die auf einer Mehrzahl von Endpunkt-Datenverarbeitungsmaschinen ausgeführt werden, wobei das Verfahren aufweist: Interagieren mit der Mehrzahl von Softwareprogrammen, wobei jedem von der Mehrzahl von Softwareprogrammen Diagnosedaten zugehörig sind, jede der Mehrzahl von Endpunkt-Datenverarbeitungsmaschinen einen Diagnose-Agent von einer Mehrzahl von Diagnose-Agents ausführt, wobei die Mehrzahl von Diagnose-Agents in Datenaustauschverbindung miteinander steht; Erfassen einer Fehlfunktion des Interagierens mit einem fehlerhaft funktionierenden Softwareprogramm von der Mehrzahl von Softwareprogrammen, wobei das fehlerhaft funktionierende Softwareprogramm auf einer Zielendpunkt-Datenverarbeitungsmaschine von der Mehrzahl von Endpunkt-Datenverarbeitungsmaschinen ausgeführt wird; Übergeben, in Reaktion auf das Erfassen der Fehlfunktion, einer Sammelanforderung für die Diagnosedaten des fehlerhaft funktionierenden Softwareprogramms an ein Dienstsoftwareprogamm von der Mehrzahl von Softwareprogrammen, wobei sich das Dienstsoftwareprogramm von dem fehlerhaft funktionierenden Softwareprogramm unterscheidet; und Empfangen der Diagnosedaten des fehlerhaft funktionierenden Softwareprogramms von dem Dienstsoftwareprogramm, wobei die Diagnosedaten durch das Dienstsoftwareprogramm von einem Zieldiagnose-Agent von der Mehrzahl von Diagnose-Agents abgerufen werden, die auf der Zielendpunkt-Datenverarbeitungsmaschine ausgeführt werden.
  2. Verfahren nach Anspruch 1, wobei das Dienstsoftwareprogramm auf einer Dienstendpunkt-Datenverarbeitungsmaschine von der Mehrzahl von Endpunkt-Datenverarbeitungsmaschinen ausgeführt wird, wobei sich die Dienstendpunkt-Datenverarbeitungsmaschine von der Zielendpunkt-Datenverarbeitungsmaschine unterscheidet.
  3. Verfahren nach Anspruch 2, wobei die Diagnosedaten durch das Dienstsoftwareprogramm über einen Dienstdiagnose-Agent von der Mehrzahl von Diagnose-Agents abgerufen werden, wobei der Dienstdiagnose-Agent auf der Dienstendpunkt-Datenverarbeitungsmaschine ausgeführt wird.
  4. Verfahren nach Anspruch 3, das des Weiteren aufweist: Weiterleiten der Sammelanforderung an den Dienstdiagnose-Agent durch das Dienstsoftwareprogramm; Übergeben einer Abrufanforderung für die Diagnosedaten an den Zieldiagnose-Agent durch den Dienstdiagnose-Agent; Empfangen der Diagnosedaten von dem Zieldiagnose-Agent durch den Dienstdiagnose-Agent; und Zurückgeben der Diagnosedaten an das Dienstsoftwareprogramm durch den Dienstdiagnose-Agent.
  5. Verfahren nach Anspruch 3, das des Weiteren aufweist: Abrufen der Diagnosedaten durch den Zieldiagnose-Agent; und Zurückgeben der Diagnosedaten an den Dienstdiagnose-Agent durch den Zieldiagnose-Agent.
  6. Verfahren nach Anspruch 1, das des Weiteren aufweist: Bereitstellen eines neuen Softwareprogramms auf einer neuen Endpunkt-Datenverarbeitungsmaschine; Bestimmen, dass keine der Mehrzahl von Softwareprogrammen auf der neuen Endpunkt-Datenverarbeitungsmaschine bereitgestellt sind; Bereitstellen eines neuen Diagnose-Agent auf der neuen Endpunkt-Datenverarbeitungsmaschine; und Herstellen einer Datenaustauschverbindung mit der Mehrzahl von Diagnose-Agents durch den neuen Diagnose-Agent.
  7. Verfahren nach Anspruch 6, das des Weiteren aufweist: gemeinsames Nutzen von einer oder mehreren Arbeitsspeicherstrukturen, die die Diagnosedaten des neuen Softwareprogramms speichern, durch den neuen Diagnose-Agent mit der Mehrzahl von Diagnose-Agents, wobei die gemeinsame Nutzung gemäß Konfigurationsinformationen dem neuen Softwareprogramm zugehörig ist.
  8. Verfahren nach Anspruch 6, wobei das Herstellen der Datenaustauschverbindung mit der Mehrzahl von Diagnose-Agents ein Erfassen des Diagnose-Agent von jedem von der Mehrzahl von Diagnose-Agents aufweist.
  9. Verfahren nach Anspruch 1, das des Weiteren aufweist: Auswählen des Dienstsoftwareprogramms gemäß einem oder mehreren Auswahlkriterien vor dem Übergeben der Sammelanforderung.
  10. Verfahren nach Anspruch 1, wobei das Interagieren mit der Mehrzahl von Softwareprogrammen ein periodisches Empfangen von Betriebsdaten von jedem Softwareprogramm aufweist, wobei das Verfahren ferner aufweist: Vermissen eines Empfangens der Betriebsdaten, wobei das fehlerhafte Funktionieren des Interagierens mit dem fehlerhaft funktionierenden Softwareprogramm in Reaktion auf das Vermissen des Empfangens der Betriebsdaten erfasst wird.
  11. Verfahren nach Anspruch 10, wobei jedes von der Mehrzahl von Softwareprogrammen ein Überwachungs-Agent einer Überwachungsanwendung ist, und wobei das Empfangen der Betriebsdaten ein Empfangen von Überwachungsdaten der entsprechenden Endpunkt-Datenverarbeitungsmaschine von jedem Überwachungs-Agent durch einen Überwachungsserver der Überwachungsanwendung aufweist.
  12. Verfahren nach Anspruch 1, wobei das Übergeben der Sammelanforderung und das Empfangen der Diagnosedaten durch eine entfernt angeordnete Entität ausgeführt werden, die abgesehen von einem Interagieren mit der Mehrzahl von Softwareprogrammen keinen Zugriff auf die Mehrzahl von Endpunkt-Datenverarbeitungsmaschinen hat.
  13. Verfahren nach Anspruch 1, wobei das Interagieren mit der Mehrzahl von Softwareprogrammen ein Zugreifen auf eine Softwareanwendung aufweist, die als ein Dienst in einer Cloud-Computing-Umgebung bereitgestellt wird.
  14. Computerprogrammprodukt zum Ausführen von Diagnoseaktivitäten in einer Datenverarbeitungsumgebung, wobei die Datenverarbeitungsumgebung eine Mehrzahl von Softwareprogrammen aufweist, die auf einer Mehrzahl von Endpunkt-Datenverarbeitungsmaschinen ausgeführt werden, wobei das Computerprogrammprodukt ein computerlesbares Medium aufweist, das darin verkörperte Programmanweisungen hat, wobei die Programmanweisungen durch mindestens einen Prozessor ausführbar sind, um ein Verfahren auszuführen, das aufweist: Interagieren mit der Mehrzahl von Softwareprogrammen, wobei jedem von der Mehrzahl von Softwareprogrammen Diagnosedaten zugehörig sind, jede der Mehrzahl von Endpunkt-Datenverarbeitungsmaschinen einen Diagnose-Agent von einer Mehrzahl von Diagnose-Agents ausführt, wobei die Mehrzahl von Diagnose-Agents in Datenaustauschverbindung miteinander steht; Erfassen einer Fehlfunktion des Interagierens mit einem fehlerhaft funktionierenden Softwareprogramm von der Mehrzahl von Softwareprogrammen, wobei das fehlerhaft funktionierende Softwareprogramm auf einer Zielendpunkt-Datenverarbeitungsmaschine von der Mehrzahl von Endpunkt-Datenverarbeitungsmaschinen ausgeführt wird; Übergeben, in Reaktion auf das Erfassen der Fehlfunktion, einer Sammelanforderung für die Diagnosedaten des fehlerhaft funktionierenden Softwareprogramms an ein Dienstsoftwareprogamm von der Mehrzahl von Softwareprogrammen, wobei sich das Dienstsoftwareprogramm von dem fehlerhaft funktionierenden Softwareprogramm unterscheidet; und Empfangen der Diagnosedaten von dem Dienstsoftwareprogramm, wobei die Diagnosedaten durch das Dienstsoftwareprogramm von einem Zieldiagnose-Agent von der Mehrzahl von Diagnose-Agents abgerufen werden, die auf der Zielendpunkt-Datenverarbeitungsmaschine ausgeführt werden.
  15. Computersystem zum Ausführen von Diagnoseaktivitäten in einer Datenverarbeitungsumgebung, wobei die Datenverarbeitungsumgebung eine Mehrzahl von Softwareprogrammen enthält, die auf einer Mehrzahl von Endpunkt-Datenverarbeitungsmaschinen ausgeführt werden, wobei das Computersystem aufweist: einen Arbeitsspeicher; und einen mit dem Arbeitsspeicher in Datenaustauschverbindung stehenden Prozessor, wobei das Computersystem so konfiguriert ist, dass es ein Verfahren ausführt, wobei das Verfahren aufweist: Interagieren mit der Mehrzahl von Softwareprogrammen, wobei jedem von der Mehrzahl von Softwareprogrammen Diagnosedaten zugehörig sind, jede der Mehrzahl von Endpunkt-Datenverarbeitungsmaschinen einen Diagnose-Agent von einer Mehrzahl von Diagnose-Agents ausführt, wobei die Mehrzahl von Diagnose-Agents in Datenaustauschverbindung miteinander steht; Erfassen einer Fehlfunktion des Interagierens mit einem fehlerhaft funktionierenden Softwareprogramm von der Mehrzahl von Softwareprogrammen, wobei das fehlerhaft funktionierende Softwareprogramm auf einer Zielendpunkt-Datenverarbeitungsmaschine von der Mehrzahl von Endpunkt-Datenverarbeitungsmaschinen ausgeführt wird; Übergeben, in Reaktion auf das Erfassen der Fehlfunktion, einer Sammelanforderung für die Diagnosedaten des fehlerhaft funktionierenden Softwareprogramms an ein Dienstsoftwareprogamm von der Mehrzahl von Softwareprogrammen, wobei sich das Dienstsoftwareprogramm von dem fehlerhaft funktionierenden Softwareprogramm unterscheidet; und Empfangen der Diagnosedaten von dem Dienstsoftwareprogramm, wobei die Diagnosedaten durch das Dienstsoftwareprogramm von einem Zieldiagnose-Agent von der Mehrzahl von Diagnose-Agents abgerufen werden, die auf der Zielendpunkt-Datenverarbeitungsmaschine ausgeführt werden.
DE102016203598.3A 2015-03-04 2016-03-04 Gemeinschaftliche sammlung von diagnosedaten von softwareprogrammen Pending DE102016203598A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US14/638,040 2015-03-04
US14/638,040 US9606894B2 (en) 2015-03-04 2015-03-04 Collaborative collection of diagnostics data of software programs
US14/918,775 US9612899B2 (en) 2015-03-04 2015-10-21 Collaborative collection of diagnostics data of software programs
US14/918,775 2015-10-21

Publications (1)

Publication Number Publication Date
DE102016203598A1 true DE102016203598A1 (de) 2016-09-08

Family

ID=56738590

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102016203598.3A Pending DE102016203598A1 (de) 2015-03-04 2016-03-04 Gemeinschaftliche sammlung von diagnosedaten von softwareprogrammen

Country Status (2)

Country Link
US (1) US9612899B2 (de)
DE (1) DE102016203598A1 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11126465B2 (en) * 2017-03-23 2021-09-21 Microsoft Technology Licensing, Llc Anticipatory collection of metrics and logs
US10379934B2 (en) 2017-07-31 2019-08-13 Oracle International Corporation System and method of providing post error analysis for instances of applications in cloud service environments on a per user basis
US10713079B2 (en) * 2018-06-25 2020-07-14 Nutanix, Inc. System and method for managing telemetry data and agents in a telemetry system
US10613919B1 (en) * 2019-10-28 2020-04-07 Capital One Services, Llc System and method for data error notification in interconnected data production systems
JP7249968B2 (ja) * 2020-03-09 2023-03-31 株式会社東芝 情報処理装置およびストレージ
US11797370B2 (en) * 2021-04-27 2023-10-24 Dell Products L.P. Optimized diagnostics plan for an information handling system
US11876665B2 (en) * 2021-10-26 2024-01-16 Radcom Ltd Focused root cause analysis

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8719804B2 (en) 2010-05-05 2014-05-06 Microsoft Corporation Managing runtime execution of applications on cloud computing systems

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7734717B2 (en) 2006-12-05 2010-06-08 Nokia Corporation Software distribution via peer-to-peer networks
US20090172082A1 (en) 2007-12-31 2009-07-02 Joaquin Sufuentes Software as a service in a peer-to-peer environment
US8271615B2 (en) 2009-03-31 2012-09-18 Cloud Connex, Llc Centrally managing and monitoring software as a service (SaaS) applications
US20120011200A1 (en) 2010-07-06 2012-01-12 Roxbeam Media Network Corporation Method and apparatus for data storage in a peer-to-peer network
US9122841B2 (en) 2012-10-16 2015-09-01 Sap Se Providing remote application logs for cloud applications

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8719804B2 (en) 2010-05-05 2014-05-06 Microsoft Corporation Managing runtime execution of applications on cloud computing systems

Also Published As

Publication number Publication date
US20160259677A1 (en) 2016-09-08
US9612899B2 (en) 2017-04-04

Similar Documents

Publication Publication Date Title
DE102016203598A1 (de) Gemeinschaftliche sammlung von diagnosedaten von softwareprogrammen
DE112014000358B4 (de) Regionales Firewall-Clustering in einer vernetzten Datenverarbeitungsumgebung
DE60214862T2 (de) Methode für die verbesserte verwaltung von einer ereignisdatenbasis und system für ereignismeldung in einem netzwerk
DE112011100808B4 (de) System und Verfahren zum Unterstützen der Instanziierung und Migration virtueller Maschinen
DE112020005786T5 (de) Systeme und verfahren zum ermöglichen eines hochverfügbaren verwalteten ausfallsicherungsdienstes
DE112018004349T5 (de) Dynamische auswahl von bereitstellungskonfigurationen von softwareanwendungen
DE112010004238T5 (de) Intelligente rollierende Aufrüstung für Datenspeichersysteme
DE112019007229T5 (de) Heuristische sd-wan-routen-neukonfiguration
DE202019103185U1 (de) Verteilte Deduplizierung von Paketen
US9606894B2 (en) Collaborative collection of diagnostics data of software programs
DE102015004127A1 (de) Verfahren und System zum Vergleichen von verschienenen Versionen einer cloud-basierten Anwendung in einer Produktionsumgebung unter Verwendung von getrennten Back-End-Systemen
DE112013003180T5 (de) Verfahren, System und Gerät zum Verwalten von Server-Hardware-Resourcen in einer Cloud-Scheduling-Umgebung
DE69637142T2 (de) Netzwerkverwaltung mit Erfassung von formatierten Abzugdaten aus einem Fernprozess
DE112018003482T5 (de) Serveranfrageverwaltung
DE102012223167B4 (de) Gemeinsame Nutzung von Artefakten zwischen kollaborativen Systemen
DE102017122738A1 (de) Virtueller Router mit dynamischer Flussauslagerungsfähigkeit
DE102015003363A1 (de) Verfahren und system zum testen cloud-basierter anwendungen in einer produktionsumgebung unter verwendung hergestellter benutzer-daten
DE112005001995B4 (de) Computeranordnung und Verfahren zum Anbieten von Diensten für Benutzer über ein Netzwerk
DE102014114108A1 (de) Prozessleitsysteme und -verfahren
DE112017006993T5 (de) System und Verfahren zum Erfassen einer Netztopologie
DE202016009092U1 (de) System zum Ausgleichen von Speicherdatenverkehr in konvergierten Netzwerken
DE102019203773A1 (de) Dynamische Firewall-Konfiguration und -Steuerung zum Zugreifen auf Dienste, die in virtuellen Netzwerken gehostet werden
DE112012001357T5 (de) Verwalten einer Portalanwendung
DE112012000305B4 (de) Gemeinsame Wiederherstellung von Datenquellen
DE112021004854T5 (de) Dynamische ersetzung von verarbeitungselementen mit einem leistungsabfall in streaming-anwendungen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

R082 Change of representative

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

R016 Response to examination communication