DE102021130957A1 - Empfehlungen zur stabilität von software-aktualisierungen - Google Patents

Empfehlungen zur stabilität von software-aktualisierungen Download PDF

Info

Publication number
DE102021130957A1
DE102021130957A1 DE102021130957.3A DE102021130957A DE102021130957A1 DE 102021130957 A1 DE102021130957 A1 DE 102021130957A1 DE 102021130957 A DE102021130957 A DE 102021130957A DE 102021130957 A1 DE102021130957 A1 DE 102021130957A1
Authority
DE
Germany
Prior art keywords
software
computing device
update
software application
computing
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
DE102021130957.3A
Other languages
English (en)
Inventor
Jefferson Tan
Bruno de Assis Marques
Lenin Mehedy
Sengor Kusturica
Hidemasa Muta
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=80080981&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE102021130957(A1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Priority claimed from US17/133,491 external-priority patent/US12032461B2/en
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE102021130957A1 publication Critical patent/DE102021130957A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/008Reliability or availability analysis
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • 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/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/324Display of status information
    • G06F11/327Alarm or error message display
    • 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
    • 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/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9538Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Ein Verfahren und System ermitteln eine mögliche Auswirkung von Software-Aktualisierungen auf eine Datenverarbeitungseinheit. Auf Grundlage der aktuell vorhandenen Software- und Hardware-Elemente wird eine Einheitenkonfiguration für eine erste Datenverarbeitungseinheit identifiziert. In dem Netzwerk werden andere Datenverarbeitungseinheiten identifiziert, die die Software-Anwendungsaktualisierung installiert haben. Eine Historie eines der Software-Anwendungsaktualisierung zugehörigen Betriebsverhaltens wird abgerufen. Das Profil wird für jede der anderen Datenverarbeitungseinheiten auf Konflikte mit der Software-Anwendung analysiert. Auf Grundlage der Historie eines der Softwareanwendungsaktualisierung zugehörigen Betriebsverhaltens und auf Grundlage eines Zustands einer Ähnlichkeit zwischen dem analysierten Profil für jede der anderen Datenverarbeitungseinheiten und dem Profil der ersten Datenverarbeitungseinheit wird ermittelt, ob die Software-Anwendungsaktualisierung womöglich einen Fehler in der ersten Datenverarbeitungseinheit verursachen wird. Dem Endbenutzer wird eine Empfehlung auf Risikogrundlage vorgelegt.

Description

  • HINTERGRUND
  • Technisches Gebiet
  • Die vorliegende Offenbarung bezieht sich im Allgemeinen auf Netzwerksysteme und im Besonderen auf ein System und Verfahren für Empfehlungen zur Stabilität von Software-Aktualisierungen.
  • Beschreibung der verwandten Technik
  • Obwohl Software-Aktualisierungen notwendig sind, um ein System sicher und stabil zu halten, sind sie selbst keinesfalls immun gegen Fehler, was eine der Hauptursachen dafür ist, dass Benutzer vermeiden, eine Software-Aktualisierung durchzuführen, wenn diese verfügbar wird. Die Aktualisierungen können sich auf unerwartete Weise verhalten und ungeplante Verzögerungen verursachen, was zu Instabilität und Produktivitätsverlust des Hauptbenutzers der betroffenen Einheit führt.
  • Benutzer erwarten berechtigterweise, dass Software-Aktualisierungen einer Einheit reibungslos vonstattengehen, während Entwickler zwar die Kompatibilitäten, Abhängigkeiten und Schwachstellen ihrer eigenen Produkte kennen, aber weniger Bescheid wissen über nicht zueinander passende Bibliotheken, Treiber, Betriebssysteme und Hardware-Komponenten, die sie nicht selbst entwickelt haben. Inkompatibilitäten sind möglicherweise so lange unbekannt, bis Aktualisierungen versucht wurden. Aktualisierungsprüfungen berücksichtigen meist nur Pakete, die durch ein und dasselbe Paketverwaltungssystem oder Quellunternehmen verwaltet werden. Aktualisierungsprüfungen berücksichtigen unter Umständen nicht die Einzigartigkeit von angepassten Paketen oder Umgebungskomponenten, die auf besondere Weise oder durch externe Paketverwaltungssysteme konfiguriert oder aus Quellcode erzeugt werden. Mitunter kann eine vollständig außerhalb des Normalen liegende Lösung das fehlende Element sein, das eine Stabilität von Systemen herstellt (zum Beispiel ein Systemneustart), das jedoch in der Entwicklerdokumentation nicht erwähnt wird. Inkompatibilitäten werden unter Umständen nur durch Versuch und Irrtum aufgedeckt. Aus diesem Grund kann es wertvoll sein, Diskussionen in Foren zu lesen, wobei dies allerdings ein gewisses Maß an Glück und ein Durcharbeiten verwandter, aber nicht unmittelbar maßgeblicher Informationen erfordert.
  • Innerhalb eines Unternehmens ist es bereits möglich, durch Automatisierung und Software-Überwachungsagenten auf Erkenntnisse zurückzugreifen, die durch die Erfahrung anderer gewonnen wurden. Die Agenten sammeln Daten für Audit-Zwecke, indem sie sichere Konfigurationen oder Versionen überprüfen, oder um statistische Berichte zu erzeugen. Allerdings beheben oder verstehen Überwachungsagenten keine Software-Aktualisierungsprobleme, die zwischen ähnlichen Systemen auftreten und die Stabilität beeinflussen.
  • Mitunter gibt es Ansätze, die eine Karte der Aktualisierungsrisiken erzeugen, um die Erfolgswahrscheinlichkeit einer Aktualisierung eines spezifischen Software-Pakets zu beurteilen. Allerdings berücksichtigen diese Ansätze womöglich nicht die Stabilität anderer Software-Pakete in demselben System, die nicht notwendigerweise mit der Software-Aktualisierung in Zusammenhang stehen.
  • KURZDARSTELLUNG
  • Gemäß einer Ausführungsform der vorliegenden Offenbarung wird ein Verfahren zum Ermitteln einer möglichen Auswirkung von Software-Aktualisierungen auf eine Datenverarbeitungseinheit bereitgestellt. Das Verfahren enthält ein Aufzeichnen eines Profils von Software- und Hardware-Elementen, die aktuell in jeder Datenverarbeitungseinheit in einem Netzwerk mit einer Mehrzahl von Datenverarbeitungseinheiten vorhanden sind. Eine Anfrage für eine Software-Anwendungsaktualisierung für eine Software-Anwendung, die sich in einer ersten Datenverarbeitungseinheit befindet, wird empfangen. Auf Grundlage der Software- und Hardware-Elemente, die aktuell in der ersten Datenverarbeitungseinheit vorhanden sind, wird eine Einheitenkonfiguration für die erste Datenverarbeitungseinheit identifiziert. In dem Netzwerk werden andere Datenverarbeitungseinheiten identifiziert, die die Software-Anwendungsaktualisierung installiert haben. Eine Historie eines Betriebsverhaltens wird abgerufen, das der Software-Anwendungsaktualisierung in den identifizierten anderen Datenverarbeitungseinheiten zugehörig ist. Das Profil wird für jede der anderen Datenverarbeitungseinheiten abgerufen. Das Profil wird für jede der anderen Datenverarbeitungseinheiten auf Hardware- oder Software-Konflikte mit der Software-Anwendung analysiert. Auf Grundlage der Historie eines der Softwareanwendungsaktualisierung zugehörigen Betriebsverhaltens in den identifizierten anderen Datenverarbeitungseinheiten und auf Grundlage eines Zustands einer Ähnlichkeit zwischen dem analysierten Profil für jede der anderen Datenverarbeitungseinheiten und dem Profil der ersten Datenverarbeitungseinheit wird ermittelt, ob die Software-Anwendungsaktualisierung womöglich einen Fehler in den Software- oder Hardware-Elementen verursachen wird, die aktuell in der ersten Datenverarbeitungseinheit vorhanden sind. Auf Grundlage der Ermittlung wird einem Endbenutzer der ersten Datenverarbeitungseinheit zusätzlich eine Empfehlung auf Risikogrundlage dazu vorgelegt, ob die Software-Aktualisierung in der ersten Datenverarbeitungseinheit installiert werden sollte.
  • Bei einer Ausführungsform enthält das Verfahren ein Identifizieren einer zweiten Datenverarbeitungseinheit, wobei die zweite Datenverarbeitungseinheit eine stabile Betriebskonfiguration zeigt. Attribute werden identifiziert, die sich auf Fehlerereignisse beziehen, die der Software-Aktualisierung in den betreffenden anderen Datenverarbeitungseinheiten zugehörig sind. Unterschiede zwischen der Konfiguration der zweiten Datenverarbeitungseinheit und jeder der betreffenden anderen Datenverarbeitungseinheiten mit Fehlerereignissen, die der Software-Aktualisierung zugehörig sind, werden analysiert. Zusätzlich werden die Unterschiede in der Konfiguration der zweiten Datenverarbeitungseinheit und der betreffenden anderen Datenverarbeitungseinheiten ermittelt, wobei die Empfehlung auf Risikogrundlage auf Grundlage der ermittelten Unterschiede in der Konfiguration erfolgt.
  • Gemäß einer Ausführungsform der vorliegenden Offenbarung wird ein Computerprogrammprodukt zum Ermitteln einer möglichen Auswirkung von Software-Aktualisierungen auf eine Datenverarbeitungseinheit bereitgestellt. Das Computerprogrammprodukt enthält ein oder mehrere computerlesbare Speichermedien sowie Programmanweisungen, die gemeinsam auf dem einen oder den mehreren computerlesbaren Speichermedien gespeichert werden. Die Programmanweisungen enthalten ein Aufzeichnen eines Profils von Software- und Hardware-Elementen, die aktuell in jeder Datenverarbeitungseinheit in einem Netzwerk mit einer Mehrzahl von Datenverarbeitungseinheiten vorhanden sind. Eine Anfrage für eine Software-Anwendungsaktualisierung für eine Software-Anwendung, die sich in einer ersten Datenverarbeitungseinheit befindet, wird empfangen. Auf Grundlage der Software- und Hardware-Elemente, die aktuell in der ersten Datenverarbeitungseinheit vorhanden sind, wird eine Einheitenkonfiguration für die erste Datenverarbeitungseinheit identifiziert. In dem Netzwerk werden andere Datenverarbeitungseinheiten identifiziert, die die Software-Anwendungsaktualisierung installiert haben. Eine Historie eines Betriebsverhaltens wird abgerufen, das der Software-Anwendungsaktualisierung in den identifizierten anderen Datenverarbeitungseinheiten zugehörig ist. Das Profil wird für jede der anderen Datenverarbeitungseinheiten abgerufen. Das Profil wird für jede der anderen Datenverarbeitungseinheiten auf Hardware- oder Software-Konflikte mit der Software-Anwendung analysiert. Auf Grundlage der Historie eines der Softwareanwendungsaktualisierung zugehörigen Betriebsverhaltens in den identifizierten anderen Datenverarbeitungseinheiten und auf Grundlage eines Zustands einer Ähnlichkeit zwischen dem analysierten Profil für jede der anderen Datenverarbeitungseinheiten und dem Profil der ersten Datenverarbeitungseinheit wird ermittelt, ob die Software-Anwendungsaktualisierung womöglich einen Fehler in den Software- oder Hardware-Elementen verursachen wird, die aktuell in der ersten Datenverarbeitungseinheit vorhanden sind. Auf Grundlage der Ermittlung wird einem Endbenutzer der ersten Datenverarbeitungseinheit zusätzlich eine Empfehlung auf Risikogrundlage dazu vorgelegt, ob die Software-Aktualisierung in der ersten Datenverarbeitungseinheit installiert werden sollte.
  • Gemäß einer Ausführungsform enthalten die Programmanweisungen des Weiteren ein Aufzeichnen des Profils in der ersten Datenverarbeitungseinheit unmittelbar vor oder nach einer Installation der Software-Anwendungsaktualisierung in der ersten Datenverarbeitungseinheit.
  • Gemäß einer Ausführungsform der vorliegenden Offenbarung wird ein Computerserver bereitgestellt. Der Computerserver enthält: eine Netzwerkverbindung; ein oder mehrere computerlesbare Speichermedien; einen Prozessor, der mit der Netzwerkverbindung verbunden wird und mit dem einen oder den mehreren computerlesbaren Speichermedien verbunden wird; und ein Computerprogrammprodukt wie z.B. Programmanweisungen, die gemeinsam auf dem einen oder den mehreren computerlesbare Speichermedien gespeichert werden. Die Programmanweisungen enthalten ein Aufzeichnen eines Profils von Software- und Hardware-Elementen, die aktuell in jeder Datenverarbeitungseinheit in einem Netzwerk mit einer Mehrzahl von Datenverarbeitungseinheiten vorhanden sind. Eine Anfrage für eine Software-Anwendungsaktualisierung für eine Software-Anwendung, die sich in einer ersten Datenverarbeitungseinheit befindet, wird empfangen. Auf Grundlage der Software- und Hardware-Elemente, die aktuell in der ersten Datenverarbeitungseinheit vorhanden sind, wird eine Einheitenkonfiguration für die erste Datenverarbeitungseinheit identifiziert. In dem Netzwerk werden andere Datenverarbeitungseinheiten identifiziert, die die Software-Anwendungsaktualisierung installiert haben. Eine Historie eines Betriebsverhaltens wird abgerufen, das der Software-Anwendungsaktualisierung in den identifizierten anderen Datenverarbeitungseinheiten zugehörig ist. Das Profil wird für jede der anderen Datenverarbeitungseinheiten abgerufen. Das Profil wird für jede der anderen Datenverarbeitungseinheiten auf Hardware- oder Software-Konflikte mit der Software-Anwendung analysiert. Auf Grundlage der Historie eines der Softwareanwendungsaktualisierung zugehörigen Betriebsverhaltens in den identifizierten anderen Datenverarbeitungseinheiten und auf Grundlage eines Zustands einer Ähnlichkeit zwischen dem analysierten Profil für jede der anderen Datenverarbeitungseinheiten und dem Profil der ersten Datenverarbeitungseinheit wird ermittelt, ob die Software-Anwendungsaktualisierung womöglich einen Fehler in den Software- oder Hardware-Elementen verursachen wird, die aktuell in der ersten Datenverarbeitungseinheit vorhanden sind. Auf Grundlage der Ermittlung wird einem Endbenutzer der ersten Datenverarbeitungseinheit zusätzlich eine Empfehlung auf Risikogrundlage dazu vorgelegt, ob die Software-Aktualisierung in der ersten Datenverarbeitungseinheit installiert werden sollte.
  • Gemäß einer Ausführungsform weisen die Programmanweisungen für den Computerserver des Weiteren ein Empfangen eines Gewichtungswerts und ein Zuweisen des Gewichtungswerts zu der Software-Anwendung auf, wobei die Empfehlung, ob die Software-Aktualisierung in der ersten Datenverarbeitungseinheit installiert werden sollte, des Weiteren auf Grundlage des Gewichtungswerts der Software-Anwendung erfolgt.
  • Die hierin beschriebenen Methoden können auf verschiedene Weise realisiert werden. Beispielrealisierungen werden im Folgenden unter Bezugnahme auf die folgenden Figuren bereitgestellt.
  • Figurenliste
  • Die Zeichnungen zeigen veranschaulichende Ausführungsformen. Sie zeigen nicht alle Ausführungsformen. Zusätzlich oder anstatt dessen können auch andere Ausführungsformen verwendet werden. Offensichtliche oder unnötige Einzelheiten können weggelassen werden, um Platz zu sparen oder eine effektivere Darstellung zu ermöglichen. Manche Ausführungsformen können mit zusätzlichen Komponenten oder Schritten und/oder ohne alle veranschaulichten Komponenten oder Schritte realisiert werden. Wenn in verschiedenen Zeichnungen dieselbe Bezugsziffer verwendet wird, bezieht sie sich auf dieselben oder ähnliche Komponenten oder Schritte.
    • 1 ist ein Blockschaubild einer Architektur für Empfehlungen und eine Planung zur Stabilität von Software-Aktualisierungen gemäß einer Ausführungsform.
    • 2 ist ein Blockschaubild eines Systems zum Ermitteln von Empfehlungen zur Stabilität von Software-Aktualisierungen gemäß manchen Ausführungsformen.
    • 3 ist ein Ablaufplan eines Verfahrens zum Ermitteln von Stabilitätsergebnissen und Instabilitätsquellen aus Software-Aktualisierungen auf Datenverarbeitungseinheiten gemäß einer Ausführungsform.
    • 4 ist ein Ablaufplan eines Verfahrens zum Evaluieren einer Risikoauswirkung einer Software-Aktualisierung auf eine Datenverarbeitungseinheit gemäß einer Ausführungsform.
    • 5 ist eine funktionale Blockschaubilddarstellung einer Computerhardware-Plattform, die mit verschiedenen vernetzten Komponenten Daten austauschen kann.
    • 6 stellt eine Cloud-Computing-Umgebung im Einklang mit einer veranschaulichenden Ausführungsform dar.
    • 7 stellt Abstraktionsmodellschichten im Einklang mit einer veranschaulichenden Ausführungsform dar.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Überblick
  • In der folgenden ausführlichen Beschreibung werden zahlreiche spezifische Einzelheiten als Beispiele dargelegt, um ein gründliches Verständnis der relevanten Lehren bereitzustellen. Allerdings sollte klar sein, dass die vorliegenden Lehren auch ohne solche Einzelheiten realisiert werden können. In anderen Fällen wurde bekannte Verfahren, Verfahrensweisen, Komponenten und/oder Schaltungen auf einer vergleichsweise allgemeinen Ebene ohne Einzelheiten beschrieben, um zu verhindern, dass Aspekte der dargelegten Lehren unnötigerweise unklar gemacht werden.
  • Die vorliegende Offenbarung bezieht sich im Allgemeinen auf Systeme und Verfahren zum Bewerten des Risikos eines Erfolgs einer System-Software-Aktualisierung und ihres Effekts auf eine Systemstabilität unter Verwendung von Erkenntnissen, die aus dem beobachteten Zustand und den Erfahrungen aus einer Sammlung von ähnlichen Einheiten gewonnen werden. Im Allgemeinen können die Ausführungsformen auf den Gebieten von Computern und Computernetzwerken realisiert werden.
  • In der folgenden Offenbarung des Gegenstands schlagen Ausführungsformen ein Unterstützungssystem und einen Unterstützungsprozess für Software-Aktualisierungen vor, das bzw. der Erkenntnisse nutzt, die durch Analysen der aktuellen Umgebung eines Endbenutzersystems (zum Beispiel eines Mitarbeiters des Unternehmens) mit seiner Mischung aus Hardware-Komponenten und Software mit unterschiedlichen Versionen erzeugt werden. Ausführungsformen können eine Wissensdatenbank zu anderen Systemen mit verschiedenen Mischungen von Hardware-Komponenten und Software mit unterschiedlichen Versionen enthalten. Die vorliegende Technologie kann die Historie erfolgreicher und fehlgeschlagener Software-Aktualisierungen und einer Stabilität anderer Systeme analysieren, die dieselben Software-Aktualisierungen realisiert haben, um von Aktualisierungen abzuraten, die in Bezug auf Zielversionen oder einen voraussichtlichen Konflikt von Paketen problematisch sind. Ausführungsformen können die Historie auf stabile Aktualisierungen analysieren, die aus gewonnenen Daten ermittelt werden und die dazu verwendet werden können, um eine Konfidenzwert-Empfehlung bereitzustellen, wenn ein Benutzer über eine mögliche Aktualisierung unterrichtet wird. Aspekte der Offenbarung des Gegenstands verbessern das Funktionieren von Datenverarbeitungseinheiten, indem sie lernen, welche Hardware-/Software-Faktoren im Konflikt mit manchen Software-Aktualisierungen stehen können, und indem sie das Potenzial für Fehler in einer Datenverarbeitungseinheit vorhersagen, falls die Einheit eine oder mehrere Software- Aktualisierungen installieren sollte.
  • Beispielarchitektur
  • 1 zeigt eine Beispielarchitektur 100 für Empfehlungen und eine Planung zur Stabilität von Software-Aktualisierungen. Die Architektur 100 enthält ein Netzwerk 106, das verschiedenen Datenverarbeitungseinheiten 102(1) bis 102(N) ermöglicht, miteinander Daten auszutauschen, sowie anderen Elementen, die mit dem Netzwerk 106 verbunden werden, wie z.B. eine Aktualisierungsdatenquelle 112, ein Aktualisierungsempfehlungs-Server 116 und die Cloud 120.
  • Das Netzwerk 106 kann ein lokales Netzwerk (Local Area Network, LAN), ein virtuelles privates Netzwerk (Virtual Private Network, VPN), ein Mobilfunknetz, das Internet oder eine Kombination hiervon sein, ohne jedoch darauf beschränkt zu sein. Zum Beispiel kann das Netzwerk 106 ein mobiles Netzwerk enthalten, das mit einem - mitunter auch als ein Intranet bezeichneten - privaten Netzwerk kommunikativ gekoppelt werden kann, das verschiedene Hilfsdienste bereitstellt, z.B. eine Datenübertragung mit verschiedenen Anwendungsspeichern, mit Bibliotheken und dem Internet. Das Netzwerk 106 ermöglicht einer Aktualisierungsempfehlungs-Engine 110, bei der es sich um ein Software-Programm handelt, das auf dem Aktualisierungsempfehlungs-Server 116 ausgeführt wird, mit der Aktualisierungsdatenquelle 112, den Datenverarbeitungseinheiten 102(1) bis 102(N) und der Cloud 120 Daten auszutauschen, um eine Datenverarbeitung bereitzustellen. Die Aktualisierungsdatenquelle 112 kann Software-Aktualisierungsdaten bereitstellen, die gemäß einer oder mehreren hierin beschriebenen Methoden verarbeitet werden. Die Software-Aktualisierungsdaten können neue oder Aktualisierungsversionen von Software-Anwendungen enthalten, die sich in den Arbeitsspeicher-/Datenspeicherelementen einer Datenverarbeitungseinheit oder in Firmware innerhalb von Hardware-Komponenten befinden. Bei einer Ausführungsform wird die Datenverarbeitung mindestens teilweise in der Cloud 120 durchgeführt.
  • Zum Zwecke einer späteren Erörterung sind mehrere Benutzereinheiten in der Zeichnung enthalten, um manche Beispiele der Datenverarbeitungseinheiten darzustellen, die die Quelle von analysierten Daten sein können, abhängig von der ausgewählten Aufgabe. Aspekte der in symbolischer Reihenfolge dargestellten Daten (z.B. 103(1) und 103(N)) können durch die Aktualisierungsempfehlungs-Engine 110 des Aktualisierungsempfehlungs-Servers 116 über das Netzwerk 106 übertragen werden. Heutzutage liegen Benutzereinheiten üblicherweise in Gestalt von tragbaren Handapparaten, Smartphones, persönlichen digitalen Assistenten (Personal Digital Assistants, PDAs) und Smartwatches vor, obwohl sie auch in anderen Formfaktoren wie z.B. Unterhaltungs- und Geschäftselektronikeinheiten realisiert werden können.
  • Zum Beispiel kann eine Datenverarbeitungseinheit (z.B. 102(N)) eine Anforderung 103(N) an die Aktualisierungsempfehlungs-Engine 110 senden, um in der Datenverarbeitungseinheit 102(N) gespeicherte Software-Versionen zu identifizieren.
  • Obwohl die Aktualisierungsdatenquelle 112 und die Aktualisierungsempfehlungs-Engine 110 lediglich beispielhaft auf verschiedenen Plattformen veranschaulicht werden, sollte offensichtlich sein, dass die Aktualisierungsdatenquelle 112 und der Aktualisierungsempfehlungs-Server 116 bei verschiedenen Ausführungsformen kombiniert werden können. Bei anderen Ausführungsformen können diese Datenverarbeitungsplattformen durch virtuelle Datenverarbeitungseinheiten in Form von virtuellen Maschinen oder Software-Containern realisiert werden, die in einer Cloud 120 bereitgestellt werden, wodurch eine elastische Architektur für eine Verarbeitung und Speicherung bereitgestellt wird.
  • Im Folgenden wird auf 2 Bezug genommen, bei der es sich um eine Architektur 200 zum Ermitteln von Empfehlungen und einer Planung zur Stabilität von Software-Aktualisierungen gemäß einer Ausführungsform handelt. Die Architektur 200 kann im Allgemeinen ein Analysatormodul 210 enthalten, das mit einer oder mehreren Datenverarbeitungseinheiten (die symbolisch durch Einheiten A, B, C, ...N dargestellt werden) Daten austauscht. Bei manchen Ausführungsformen kann die durch die zugrundeliegenden Verfahren realisierte Software ein (in der Zeichnung als „Agent“ gekennzeichnetes) Planungsmodul enthalten, das sich auf den Datenverarbeitungseinheiten befindet. Das Planungsmodul kann ein Software-Modul sein, das den aktuellen Betriebszustand von Hardware und Software auf einer Datenverarbeitungseinheit überwacht und ein Protokollieren von aktuellen Betriebszuständen plant. Das Planungsmodul kann mit dem Analysatormodul 210 Daten austauschen, um Informationen zu den aktuellen Hardware-Merkmalen einer Datenverarbeitungseinheit und den Versionen von Software-Anwendungen bereitzustellen, die aktuell aktiv sind. Bei manchen Ausführungsformen kann das Planungsmodul ein Systemprofil für die Datenverarbeitungseinheit erzeugen. Das Profil kann zum Beispiel enthalten: die aktuell installierten Software-Pakete, die installierten oder mit der Einheit verbundenen Hardware-Komponenten, installierte Zertifikate, Ein-/Ausschalt-Ereignisse (zum Beispiel Protokolle von Schlafmodus, Ruhezustandsmodus, Abschaltung sowie Neustarts), Aktualisierungsversuche, Erfolgs- oder Fehlerprotokolle, Verhaltensmerkmale einer Stabilität/Instabilität, Sicherheitskonformität, laufende Prozesse und Dienste sowie Ressourcenauslastung (zum Beispiel Arbeitsspeicherauslastung, CPU-Auslastung, Festplattenplatz, Datei-Indizes und Sockets.
  • Das Planungsmodul kann in regelmäßigen Abständen eine Momentaufnahme des Profils der Datenverarbeitungseinheit erstellen. Die Momentaufnahmen können den aktuellen Zustand von Bibliotheken, Paketen und protokollierten Ereignissen enthalten. Das Planungsmodul kann Berichte zu den Momentaufnahmen an das Analysatormodul 210 senden. Momentaufnahmen werden symbolisch durch die Kreise innerhalb eines jeden Planungsmodul-Felds dargestellt. Als Reaktion auf das Auftreten einer Software-Aktualisierung oder einer anderweitigen Veränderung in der Datenverarbeitungseinheit, die einen Aufruf an das Analysatormodul 210 auslöst, um den aktuellen Zustand der Einheit zu evaluieren, können Planungsmodule bei manchen Ausführungsformen eine Momentaufnahme aufzeichnen. Zum Beispiel können Momentaufnahmen durch das Planungsmodul unmittelbar vor und nach einer Aktualisierung erfasst werden. Nach der Aktualisierung kann das Planungsmodul einen Erfolgsvergleichstest starten, in dessen Zuge Folgendes überprüft werden kann:
    • Antiviren-Software wird ausgeführt;
    • WLAN funktioniert;
    • VPN funktioniert;
    • Crashplan ist funktionsfähig;
    • Docker Engine wird ausgeführt.
    • Minikube wird ausgeführt, usw.
  • Die bei dem Vergleich verwendeten Erfolgskriterien können durch einen Administrator festgelegt werden. Zum Beispiel kann ein Erfolg auf einem Vergleichen der Momentaufnahme vor und nach der Aktualisierung und einem Prüfen auf das Auftreten von Fehlern bei einer oder mehreren anderen Software-Anwendungen oder Hardware-Operationen beruhen. Die Stabilität der Aktualisierung kann darauf beruhen, dass es während einer nachfolgenden Zeitspanne nach der Aktualisierung nicht zu Ausfällen von Software oder Hardware einer Einheit kommt. Bei manchen Ausführungsformen kann ein Benutzer außerdem zusätzliche angepasste Erfolgskriterien angeben (die zusätzlich dazu verwendet werden können, was ein Administrator für die Unternehmensnetzwerksysteme definiert hat). Zum Beispiel kann ein Entwickler in dem Unternehmen zusätzliche Befehle hinzufügen, um bestimmte ausgeführte Programme (wie z.B. ssh) zu prüfen, die für seine bzw. ihre tägliche Arbeit notwendig sind. Die zusätzlichen Befehle können Shell-Skripte, Python-Skripte oder ein ausführbares Programm sein, das eine Stabilität bestimmter Programme prüft und den Status in den Stabilitätsvergleichsbericht aufnimmt.
  • Als ein veranschaulichendes Beispiel kann ermittelt werden, dass Momentaufnahmen einen von drei Zuständen zeigen: ein stabiles System; ein erfolgreiches Aktualisierungsereignis; oder ein instabiles System. Eine Zeitreihe der aufgezeichneten Momentaufnahmen kann in einer Datenbank 240 gespeichert werden. Die Historie von Momentaufnahmen und ihres Inhalts kann durch ein Korrelationsmodul 220 analysiert werden, um die zugrundeliegenden Faktoren zu ermitteln, die eine Stabilität oder Instabilität in einer Datenverarbeitungseinheit gezeigt haben. Die zugrundeliegenden Faktoren können eine Historie eines Verhaltens durch die Software-Anwendung und/oder die Attribute enthalten, die Hardware- und Software-Elementen zugehörig sind, die in Einheiten vorhanden sind. Während des Betriebs nimmt das Analysatormodul 210 die Berichte aus den Planungsmodulen auf. Für jede Einheit wird eine Systemzustands-Zeitreihe erzeugt. Diese erfasst den Zustand eines Systems einer Datenverarbeitungseinheit über die Zeit hinweg und konzentriert sich dabei darauf, den kontinuierlichen Stabilitäts- oder Funktionszustand aufrechtzuerhalten. Die Zeitreihe kann als ein Graph dargestellt und verarbeitet werden. Die Momentaufnahmen können als ein Wörterbuch dargestellt und verarbeitet werden, zum Beispiel als Schlüsselwertpaare. Auf Grundlage der Konfiguration einer Einheit kann das Analysatormodul 210 Einheiten mit ähnlichen Konfigurationszuständen korrelieren und identifizieren und dabei Faktoren berücksichtigen, die für die Ergebnisse einer Aktualisierung bedeutsam sind. Eine Ähnlichkeit zwischen Einheiten kann auf vorhandenen Hardware-Einheiten, auf für Hardware verwendeten Firmware-Versionen, auf aktivierten Software-Anwendungen, auf in Verwendung befindlichen Software-Versionen und auf in Verwendung befindlichen Betriebssystemen beruhen. Das Analysatormodul 210 kann auf Grundlage von Daten, die aus Stichproben erfasst werden, die folgenden beispielhaften Statistiken bereitstellen:
    • die Wahrscheinlichkeit von erfolgreichen Aktualisierungen;
    • die Wahrscheinlichkeit, dass das System stabil bleibt;
    • Faktoren in Zusammenhang mit nicht erfolgreichen Aktualisierungen; und
    • Faktoren in Zusammenhang mit erfolgreichen Aktualisierungen.
  • Das Analysatormodul 210 kann verwendet werden, um über das Planungsmodul durch das Empfehlungsmodul 230 Empfehlungen an den Benutzer zu übertragen.
  • Bei einer erfolgreichen Aktualisierung kann das Analysatormodul 210 eine darauffolgende Analyse durchführen, um Faktoren, die vermutlich in Zusammenhang mit einem Fehler stehen, sowie für mögliche Abhilfemaßnahmen zu ermitteln.
  • In der Blockdarstellung 200 veranschaulicht jede Einheit ein unterschiedliches Szenario, das bei Ausführungsformen der Offenbarung des Gegenstands auftreten kann.
  • Obwohl vier Szenarien gezeigt werden, sollte klar sein, dass auch andere Szenarien denkbar sind. Eine Einheit A zeigt zum Beispiel eine Zeitreihe von Momentaufnahmen, die ein stabiles System, danach eine erfolgreiche Aktualisierungsrealisierung, ein stabiles System und danach ein instabiles System zeigen. Das Szenario kann für einen Benutzer stehen, der seine bzw. ihre Software aktualisiert hat, ohne dass es eine bekannte Erfahrung zu der Aktualisierung gibt. Wenn die Aktualisierung erfolgreich ist, meldet das Planungsmodul den Zustand vor und nach der Aktualisierung. Es überwacht außerdem die kontinuierliche Funktionalität des Systems auf Grundlage von Akzeptanzkriterien, die als ein Indikator für Stabilität in der Wissensdatenbank gespeichert werden.
  • Eine Einheit B hat eine Momentaufnahme eines stabilen Systems, danach aufeinanderfolgende Momentaufnahmen eines instabilen Systemprofils und dann eine erfolgreiche Aktualisierung gezeigt. Ein Benutzer hat seine bzw. ihre Software womöglich aktualisiert, ohne dass es eine bekannte Erfahrung zu der Aktualisierung gibt. Die Software-Aktualisierung führt zu einem Fehler, der des Weiteren eine Instabilität in dem System verursacht (z.B. funktioniert das WLAN nicht mehr, Anwendungen stürzen ab). Das Planungsmodul kann Zustände vor und nach der Aktualisierung melden, und solche Metadaten können in dem entfernt angeordneten Stabilitätsanalysatormodul 210 verarbeitet werden, um Korrelationen zu ermitteln, die auf Ursachen hinweisen können.
  • Eine Einheit C zeigte drei aufeinanderfolgende Momentaufnahmen eines stabilen Systems und danach eine Momentaufnahme eines instabilen Systems. Ein Benutzer hat womöglich versucht, seine bzw. ihre Software zu aktualisieren, wobei es eine bekannte Erfahrung zu der Aktualisierung gibt. Das Planungsmodul kann Wahrscheinlichkeiten für einen Erfolg oder Fehler auf Grundlage der bekannten Erfahrung melden und dabei möglicherweise von vornherein von der Aktualisierung abraten.
  • Eine Einheit N hat ein stabiles System, ein erfolgreiches Aktualisierungsprofil und eine anhaltende Stabilität in den nächsten beiden Momentaufnahmen gezeigt. Ein Benutzer hat womöglich versucht, seine bzw. ihre Software zu aktualisieren, wobei das Planungsmodul aufgrund negativer früherer Erfahrungen einen unwahrscheinlichen Erfolg gemeldet hat. Gleichwohl verläuft der Versuch erfolgreich. Das Planungsmodul meldet die Ergebnisse und Veränderungen der Erfahrungswerte an das Analysatormodul 210, sodass ein möglicher falsch positiver Wert identifiziert wird. Unter Umständen hat der Benutzer jedoch auch versucht, Vorsichtsmaßnahmen zu ergreifen (zum Beispiel Installation oder Entfernung von Paketen, Neukonfigurationen). Die Vorsichtsmaßnahmen können ebenfalls durch das Planungsmodul aufgezeichnet werden, wenn es die Zustände vor und nach der Aktualisierung erfasst. Die Vorsichtsmaßnahmen können in Erfahrungsdatensätze aufgenommen werden.
  • Beispielmethodik
  • Unter Bezugnahme auf 3 wird nun ein Verfahren 300 zum Ermitteln von Stabilitätsergebnissen und Instabilitätsquellen aus Software-Aktualisierungen auf Datenverarbeitungseinheiten gemäß einer Ausführungsform gezeigt. Das Verfahren 300 kann als Reaktion darauf ausgelöst werden, dass eine oder mehrere Datenverarbeitungseinheiten einen Versuch registrieren 310, eine Software-Anwendung zu aktualisieren. Das Verfahren 300 kann ermitteln 320, ob ein Aktualisierungsversuch erfolgreich war. Nicht erfolgreiche Versuche können als ein fehlgeschlagener Aktualisierungsversuch markiert 325 werden. Für erfolgreich installierte Aktualisierungen kann das Verfahren die Stabilität einer Datenverarbeitungseinheit überwachen 330 (oder von Einheiten, falls es sich um eine Aktualisierung mehrerer Einheiten handelt). Der Überwachungsschritt 330 kann in einer Zeitspanne nach einer installierten Aktualisierung erfolgen, die bei manchen Ausführungsformen von einem Endbenutzer oder einem Administrator festgelegt werden kann. Eine Stabilität kann darauf beruhen, dass die Endeinheit unterbrechungsfrei funktioniert. Eine Instabilität in einer Datenverarbeitungseinheit, die zum Beispiel eine Fehlermarkierung registriert, kann darauf beruhen, dass in einer anderen Software als der Anwendung, die aktualisiert wurde, ein Fehler auftritt (zum Beispiel ein Absturz), oder auf Hardware innerhalb derselben Datenverarbeitungseinheit, die die Software-Aktualisierung installiert hat, bei der ein Fehler auftritt. Fehlerereignisse können protokolliert 340 werden. Das Verfahren 300 kann analysieren, welche Attribute der Umgebung der Datenverarbeitungseinheit möglicherweise zu dem Fehler beigetragen haben. Die Attribute können einen Inhalt der Software-Aktualisierung, Konflikte mit anderen Software-Anwendungen in der Datenverarbeitungseinheit und Hardware enthalten, die nicht erwartungsgemäß auf die aktualisierte Software reagiert. Bei manchen Ausführungsformen können Stabilitätsvergleichsattribute in ihrer einfachsten Form drei größeren Gruppen mit binären (wahr/falsch) Werten zugeordnet werden. Stabilitätskriterien können außerdem einen numerischen oder Zeichenfolgewert mit Schwellenwerten oder einem zulässigen Satz von Werten enthalten:
    1. 1. Unternehmensweite Referenzstabilitätsattribute: WLAN funktioniert, VPN funktioniert, Zertifikate sind installiert, System-Absturz hat einen Schwellenwert mit einem Zeitrahmen überschritten; eMail funktioniert usw.
    2. 2. Stabilitätsattribute auf Grundlage eines Aufgabenbereichs eines Benutzers/Mitarbeiters: Ein Kunde benötigt Zugriff auf das Support-Ticket-System, ein Entwickler braucht Zugriff auf ein Git-Repository, ein Dashboard einer Cloud-Plattform usw.
    3. 3. Angepasste, von einem Mitarbeiter definierte Attribute: Ein Entwickler kann die einwandfreie Ausführung einer bestimmten Anwendung wie z.B. eines grafischen Git-Clients oder Microsoft Office®-Programms nach der Aktualisierung auf seiner bzw. ihrer Maschine als zusätzliche Erfolgskriterien definieren. Solche von einem Mitarbeiter definierte Erfolgskriterien können des Weiteren automatisch auch anderen Mitarbeitern mit ähnlichen Aufgabenbereichen empfohlen werden.
  • Fehlerkriterien für jedes Attribut können als Boolescher Wert (falsch), als numerischer Wert unterhalb eines Schwellenwerts (1, Schwellenwert: 3) oder als ein zulässiger Zeichenfolgewert („erforderlich“: „1,0,1“, „gefunden“: „0,11,0“) angegeben werden.
  • Erfolgreiche Aktualisierungen können protokolliert 360 werden. Die Attribute, die einer erfolgreichen Aktualisierung zugehörig sind, können identifiziert 370 werden.
  • Bei einer beispielhaften Ausführungsform kann das Verfahren 300 die Attribute, die fehlgeschlagenen Aktualisierungsversuchen zugehörig sind, mit denjenigen vergleichen, die erfolgreichen Aktualisierungsversuchen zugehörig sind, und kann die Unterschiede bei den Attributen analysieren 370, um die Erfolgs- und Fehlerquellen zu ermitteln. Die Analyseergebnisse können verwendet werden, um das Potenzial für einen Erfolg oder eine Aktualisierung in anderen Datenverarbeitungseinheiten zu projizieren, die dieselbe Software-Anwendung aktualisieren werden. Das Verfahren 300 kann ein Erzeugen 390 von Empfehlungen dazu enthalten, ob auf Grundlage der Ergebnisse aus der Analyse von Unterschieden eine Software-Aktualisierung in einer Datenverarbeitungseinheit installiert werden sollte. Bei manchen Ausführungsformen kann einem Benutzer einer Datenverarbeitungseinheit, dem die Option zum Installieren einer Software-Aktualisierung vorgelegt wird, auf Grundlage dessen eine Empfehlung vorgelegt werden, dass dieselbe Software-Aktualisierungsversion auf einer weiteren Datenverarbeitungseinheit mit einem ähnlichen Profil installiert wurde. Wenn eine Datenverarbeitungseinheit zum Beispiel eine oder mehrere Software-Anwendungen (Software A und Software B) hat, bei denen ein Konflikt mit der Aktualisierung einer anderen Software-Anwendung (Software C) auf einer anderen Datenverarbeitungseinheit aufgetreten ist, die ebenfalls Software A und Software B hat, kann die Empfehlung ein Risikoniveau eines Installierens der Software-Aktualisierung vorlegen. In dem Profil der Einheit kann es andere zugrundeliegende Faktoren geben, die das Risikoniveau erhöhen oder mindern können.
  • Unter Bezugnahme auf 4 wird ein Verfahren zum Evaluieren einer Risikoauswirkung einer Software-Aktualisierungen auf eine Datenverarbeitungseinheit gemäß einer beispielhaften Ausführungsform gezeigt. Das Verfahren 400 enthält generell ein Evaluieren des aktuellen Betriebszustands einer Datenverarbeitungseinheit. Das Verfahren kann beginnen, indem die aktuelle Stabilitätsdauer einer Einheit ermittelt 410 wird. Die Aktualisierungsempfehlungs-Engine kann in regelmäßigen Abständen das aktuelle Profil der Datenverarbeitungseinheit analysieren 420. Die aktuell auf der Datenverarbeitungseinheit vorhandenen Software-Anwendungen (und ihre aktuellste Version) können ermittelt 430 werden. Manche Ausführungsformen können einen Gewichtungswert von dem Endbenutzer der Datenverarbeitungseinheit empfangen, der die Wichtigkeit von Software-Anwendungen auf der Einheit priorisiert. Die Aktualisierungsempfehlungs-Engine kann die Gewichtung ermitteln 440, die der gerade analysierten Software zugewiesen wird.
  • Bei manchen Ausführungsformen kann ein Systemadministrator einer Software, die gerade in Datenverarbeitungseinheiten innerhalb eines Netzwerks verwendet wird, gewichtete Werte zuweisen. Die Aktualisierungsempfehlungs-Engine kann den gewichteten Wert ermitteln 450, der jeder Software-Anwendung durch den Administrator zugewiesen wird. Beim Evaluieren des Risikos, das einer Software-Aktualisierung zugehörig ist, kann die Aktualisierungsempfehlungs-Engine Datenverarbeitungseinheiten in dem Netzwerk mit derselben installierten Software-Aktualisierung identifizieren 460. Das Einheitenprofil für identifizierte Datenverarbeitungseinheiten mit derselben Aktualisierung kann abgerufen 470 werden. Bei manchen Ausführungsformen können Warnmeldungen abgerufen 480 werden, die durch die identifizierten Einheiten protokolliert werden. Manche Ausführungsformen können ein Abrufen 490 von Fehlermeldungen enthalten, die durch die identifizierten Einheiten protokolliert werden. Die Einheitenprofile, Warnmeldungen und/oder Fehlermeldungen können verwendet werden, um zu ermitteln, inwiefern sich die Software-Aktualisierung auf eine weitere Datenverarbeitungseinheit auswirken kann. Zum Beispiel kann eine Historie von Warn- und Fehlermeldungen in Zusammenhang mit der Software-Aktualisierung, die gerade in anderen Datenverarbeitungseinheit analysiert wird (und möglicherweise besonders in Einheiten mit ähnlichen Konfigurationen wie der gerade analysierten Datenverarbeitungseinheit), auf eine höhere Wahrscheinlichkeit eines Fehlers oder einer Instabilität infolge eines Installierens der Software-Aktualisierung hinweisen. Ausführungsformen können ein Ermitteln 495 eines Aktualisierungsprofils für die Datenverarbeitungseinheit enthalten, die womöglich die betreffende Software-Anwendung aktualisiert, die gerade hinsichtlich ihres Effekts auf die Datenverarbeitungseinheit analysiert wird.
  • Beispielkriterien zum Ermitteln einer Instabilität oder eines Risikos
  • Unter weiterer Bezugnahme auf 4 legt die folgende skizzenhafte Formel kurz dar, wie Aktualisierungsempfehlungen gemäß einer beispielhaften Ausführungsform erzeugt werden können:
    • Dabei wird Folgendes vorausgesetzt:
      • t Stunden einer obligatorischen Stabilitätsdauer,
      • d Profil einer bestimmten Einheit, das Hardware- und Software-Komponenten der Einheit, ihre Versionen und historische Aktualisierungs- und Installationsdaten beschreibt,
      • S = {s1, s2, .. sn} Software-Produkte oder -Anwendungen, die für den Benutzer relevant sind, sowie deren aktuelle Versionsnummern,
      • W = {w1, w2, .. wn} entsprechende Prioritätsgewichtungen, die durch den Benutzer für jede Software-Anwendung festgelegt werden,
      • A = {A1, A2, .. An} entsprechende Gewichtungen, die durch Administratoren für ein Unternehmensnetzwerk für jede Software-Anwendung in dem Netzwerk festgelegt werden,
    • und wobei ferner für eine bestimmte beabsichtigte Aktualisierungsaktion für die Software s U(s) das Empfehlungsmodul (siehe 2) eine Analyse der folgenden Datensätze durchführen kann:
      • Einheitenprofil für jede Einheit, die dieselbe Aktualisierung U durchgeführt hat, um Einheiten ausfindig zu machen, die ähnlich der beabsichtigten Einheit sind,
      • Warnmeldungen für alle Einheiten mit einem ähnlichen Profil, die protokolliert wurden, seitdem dieselbe Aktualisierung auf einer weiteren Einheit durchgeführt wurde,
      • entsprechende Fehlermeldungen.
    • Als eine Funktion ƒ(t, S, W, A, U(s)) erzeugt das Empfehlungsmodul (R, R'), eine Empfehlung zu analysierten historischen Daten mit einem Wert, der mit steigender Größenordnung die Empfehlung für die Aktualisierung U(s) ausdrückt, zum Beispiel unter Verwendung eines gewichteten arithmetischen Mittels für ein bestimmtes Software-Produkt oder eine bestimmte Software-Anwendung. Das Empfehlungsmodul kann ein Aktualisierungsprofil erzeugen, das ein Tupel (R, R') sein kann, wobei:
      • R ein endgültiger Empfehlungswert ist, der die Größenordnung eines Empfehlens der Aktualisierung angibt. Zum Beispiel kann 1,0 eine absolute Empfehlung für ein Anwenden der Aktualisierung U(s) sein, und 0,0 kann eine absolute Empfehlung dagegen sein.
      • R'= {r1, r2, .. rn} ist die Empfehlungseinheitsbewertung, wobei der Wert r, der der Software s entspricht, ein Maß für die projizierte Stabilität nach dem Anwenden der Aktualisierung U(s) ist.
  • Zum Beispiel soll eine Einheit mit einer ausstehenden Software-Aktualisierung angenommen werden, wobei S = {Software A Version 1089, Software B} der Satz von lediglich zwei Software-Produkten in der Einheit ist. Wenn eine Projektion für ein Anwenden der Aktualisierung U(Software A Version 1099) angefordert wird und W = A = {1,0, 1,0} gelten soll, weisen sowohl der Benutzer als auch die Unternehmensadministratoren den beiden Software-Produkten gleiche Gewichtungen zu und das Ergebnis kann R = 0,9 und R'= {1,0, 0,8} lauten.
  • Die Ergebnisse von R' zeigen, dass der Empfehler eine perfekte Stabilität für Software A nach dem Aktualisieren auf Version 1099 und eine weniger perfekte Stabilität für Software B gemessen hat. Das gewichtete Mittel von 0,9 wurde dann der endgültigen Empfehlung R zugewiesen, und nun liegt es an dem Benutzer zu entscheiden, ob dieser Wert gut genug ist. Weitere Anfragen an das Empfehlungsmodul können erhalten, wie lange frühere Einheiten auf demselben Aktualisierungspfad stabil geblieben sind (wobei der Schwellenwert t einzuhalten war) sowie, wie viele ähnliche Einheiten für die in der Empfehlung verwendeten Daten berücksichtigt wurden.
  • Beispiel-Computerplattform
  • Wie oben dargelegt, können Funktionen in Zusammenhang mit einer interpretierbaren Modellierung der Offenbarung des Gegenstands unter Verwendung von einer oder mehreren Datenverarbeitungseinheiten durchgeführt werden, die über eine drahtlose oder drahtgebundene Datenübertragung für eine Datenübertragung verbunden werden, wie dies in 1 gezeigt wird. 5 ist eine funktionale Blockschaubilddarstellung einer Computerhardware-Plattform, die mit verschiedenen vernetzten Komponenten wie z.B. einer Quelle von Trainingseingabedaten, der Cloud usw. Daten austauschen kann. Im Besonderen zeigt 5 eine Netzwerk- oder Host-Computerplattform 500, wie sie verwendet werden kann, um einen Server wie z.B. den Aktualisierungsempfehlungs-Server 116 aus 1 zu realisieren.
  • Die Computerplattform 500 kann eine Zentraleinheit (Central Processing Unit, CPU) 504, ein Festplattenlaufwerk (Hard Disk Drive, HDD) 506, einen Direktzugriffsspeicher (Random Access Memory, RAM) und/oder einen Festwertspeicher (Read-Only Memory, ROM) 508, eine Tastatur 510, eine Maus 512, eine Anzeige 514 und eine Datenübertragungsschnittstelle 516 enthalten, die mit einem Systembus 502 verbunden werden.
  • Bei einer Ausführungsform verfügt das HDD 506 über Fähigkeiten, die ein Speichern eines Programms enthalten, das verschiedene Prozesse auf eine hierin beschriebene Weise ausführen kann, wie z.B. die Aktualisierungsempfehlungs-Engine 540. Im Allgemeinen kann die Aktualisierungsempfehlungs-Engine 540 konfiguriert werden, um Datenverarbeitungseinheiten gemäß den oben beschriebenen Ausführungsformen auf eine projizierte Stabilität nach einer Software-Aktualisierung zu analysieren. Die Aktualisierungsempfehlungs-Engine 540 kann verschiedene Module aufweisen, die konfiguriert werden, um verschiedene Funktionen durchzuführen. Bei manchen Ausführungsformen kann die Aktualisierungsempfehlungs-Engine 540 Teilmodule enthalten. Ein Beispiel hierfür sind ein Einheitenprofil-Analysator 542, ein Warnmeldungsprotokoll-Analysator 544, ein Fehlermeldungsprotokoll-Analysator 546 und ein Gewichtungswertmodul 548.
  • Bei einer Ausführungsform kann das HDD 506 eine ausgeführte Anwendung speichern, die ein oder mehrere Bibliotheks-Software-Module wie z.B. jene für das Programm Java™ Runtime Environment zum Realisieren einer JVM (Java™ Virtual Machine) enthält.
  • Bei einer weiteren Ausführungsform kann die Computerplattform 500 für einen Endbenutzercomputer stehen (zum Beispiel die Datenverarbeitungseinheiten 102(1) bis 102(N)). In diesem Zusammenhang können die verschiedenen Endbenutzer-Computerplattformen 500 gemischte Konfigurationen von Hardware-Elementen und Software-Paketen enthalten. Wie offensichtlich sein dürfte, analysieren Aspekte der Offenbarung des Gegenstands die Variationen von Hardware-/Software-Elementen, die in den jeweiligen Computerplattformen 500 vorhanden sind, auf ihren Beitrag zur Kompatibilität mit einer Software-Aktualisierung. Somit kann eine Software-Aktualisierung in einer bestimmten Computerplattform 500 in Anbetracht der Hardware- und Software-Version vorhandener Anwendungen stabil sein. Zugleich kann eine weitere Computerplattform 500 ein Hardware- oder Software-Element enthalten, das durch die Software-Aktualisierung nicht berücksichtigt wurde. Als Ergebnis kann es bei dem Betrieb einer oder mehrerer Computerplattform-Elemente zu einer Instabilität oder einem Fehler kommen.
  • Beispiel-Cloud-Plattform
  • Wie oben dargelegt, können Funktionen, die sich auf ein Analysieren der Auswirkung einer Software-Aktualisierung auf eine Datenverarbeitungseinheit beziehen, eine Cloud 120 enthalten (siehe 1). Es sei klargestellt, dass die Realisierung der hierin angeführten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt ist, obwohl diese Offenbarung eine ausführliche Beschreibung von Cloud Computing enthält. Vielmehr können Ausführungsformen der vorliegenden Offenbarung gemeinsam mit jeder beliebigen Art von jetzt bekannter oder später entwickelter Datenverarbeitungsumgebung realisiert werden.
  • Cloud Computing ist ein Dienstbereitstellungsmodell zum Ermöglichen eines problemlosen bedarfsgesteuerten Netzwerkzugriffs auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Hauptspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste), die mit minimalem Verwaltungsaufwand bzw. minimaler Interaktion mit einem Anbieter des Dienstes schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Eigenschaften, mindestens drei Dienstmodelle und mindestens vier Einsatzmodelle enthalten.
  • Bei den Eigenschaften handelt es sich um die Folgenden:
  • On-Demand Self-Service: Ein Cloud-Nutzer kann einseitig automatisch nach Bedarf für Datenverarbeitungsfähigkeiten wie Server-Zeit und Netzwerkspeicher sorgen, ohne dass eine menschliche Interaktion mit dem Anbieter der Dienste erforderlich ist.
  • Broad Network Access: Es sind Fähigkeiten über ein Netzwerk verfügbar, auf die durch Standardmechanismen zugegriffen wird, die die Verwendung durch heterogene Thin- oder Thick-Client-Plattformen (z.B. Mobiltelefone, Laptops und PDAs) unterstützen.
  • Resource-Pooling: Die Datenverarbeitungsressourcen des Anbieters werden zusammengeschlossen, um mehreren Nutzern unter Verwendung eines Multi-Tenant-Modells zu dienen, wobei verschiedene physische und virtuelle Ressourcen dynamisch nach Bedarf zugewiesen und neu zugewiesen werden. Es gibt eine gefühlte Standortunabhängigkeit, da der Nutzer allgemein keine Kontrolle bzw. Kenntnis über den genauen Standort der bereitgestellten Ressourcen hat, aber in der Lage sein kann, einen Standort auf einer höheren Abstraktionsebene festzulegen (z.B. Land, Staat oder Rechenzentrum).
  • Rapid Elasticity: Fähigkeiten können für eine schnelle horizontale Skalierung (Scale-out) schnell und elastisch bereitgestellt werden, in einigen Fällen auch automatisch, und für ein schnelles Scale-in schnell freigegeben werden. Für den Nutzer erscheinen die für das Bereitstellen verfügbaren Fähigkeiten häufig unbegrenzt und sie können jederzeit in jeder beliebigen Menge gekauft werden.
  • Measured Service: Cloud-Systeme steuern und optimieren die Verwendung von Ressourcen automatisch, indem sie eine Messfähigkeit auf einer gewissen Abstraktionsebene nutzen, die für die Art von Dienst geeignet ist (z.B. Speicher, Verarbeitung, Bandbreite sowie aktive Benutzerkonten). Der Ressourcenverbrauch kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Benutzer des verwendeten Dienstes Transparenz geschaffen wird.
  • Bei den Dienstmodellen handelt es sich um die Folgenden:
  • Software as a Service (SaaS): Die dem Nutzer bereitgestellte Fähigkeit besteht darin, die in einer Cloud-Infrastruktur laufenden Anwendungen des Anbieters zu verwenden. Die Anwendungen sind über eine Thin-Client-Schnittstelle wie einen Web-Browser (z.B. auf dem Web beruhende eMail) von verschiedenen Client-Einheiten her zugänglich. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter das Netzwerk, Server, Betriebssysteme, Speicher bzw. sogar einzelne Anwendungsfähigkeiten, mit der möglichen Ausnahme von eingeschränkten nutzerspezifischen Anwendungskonfigurationseinstellungen.
  • Platform as a Service (PaaS): Die dem Nutzer bereitgestellte Fähigkeit besteht darin, durch einen Nutzer erstellte bzw. erhaltene Anwendungen, die unter Verwendung von durch den Anbieter unterstützten Programmiersprachen und Tools erstellt wurden, in der Cloud-Infrastruktur einzusetzen. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter Netzwerke, Server, Betriebssysteme bzw. Speicher, hat aber die Kontrolle über die eingesetzten Anwendungen und möglicherweise über Konfigurationen für Application Hosting Environment.
  • Infrastructure as a Service (laaS): Die dem Nutzer bereitgestellte Fähigkeit besteht darin, das Verarbeiten, Speicher, Netzwerke und andere grundlegende Datenverarbeitungsressourcen bereitzustellen, wobei der Nutzer in der Lage ist, beliebige Software einzusetzen und auszuführen, zu der Betriebssysteme und Anwendungen gehören können. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicher, eingesetzte Anwendungen und möglicherweise eine eingeschränkte Kontrolle über ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
  • Bei den Einsatzmodellen handelt es sich um die Folgenden:
  • Private Cloud: Die Cloud-Infrastruktur wird einzig und allein für eine Organisation betrieben. Sie kann durch die Organisation oder einen Dritten verwaltet werden und kann sich in den eigenen Räumen oder in fremden Räumen befinden.
  • Community Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine spezielle Benutzergemeinschaft, die gemeinsame Angelegenheiten hat (z.B. Zielsetzung, Sicherheitsanforderungen, Richtlinien sowie Überlegungen bezüglich der Einhaltung von Vorschriften). Sie kann durch die Organisationen oder einen Dritten verwaltet werden und sich in den eigenen Räumen oder in fremden Räumen befinden.
  • Public Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt und gehört einer Cloud-Dienste verkaufenden Organisation.
  • Hybrid Cloud: Die Cloud-Infrastruktur ist eine Zusammensetzung aus zwei oder mehreren Clouds (privat, Nutzergemeinschaft oder öffentlich), die zwar einzelne Einheiten bleiben, aber durch eine standardisierte oder proprietäre Technologie miteinander verbunden sind, die Daten- und Anwendungsportierbarkeit ermöglicht (z.B. Cloud-Zielgruppenverteilung für den Lastenausgleich zwischen Clouds).
  • Eine Cloud-Computing-Umgebung ist dienstorientiert mit Fokus auf Statusunabhängigkeit, geringer Kopplung, Modularität und semantischer Interoperabilität. Im Mittelpunkt des Cloud Computing steht eine Infrastruktur, die ein Netzwerk aus zusammengeschalteten Knoten enthält.
  • Unter Bezugnahme auf 6 wird eine veranschaulichende Cloud-Computing-Umgebung 600 dargestellt. Wie gezeigt ist, weist die Cloud-Computing-Umgebung 600 einen oder mehrere Cloud-Computing-Knoten 610 auf, mit denen von Cloud-Nutzern verwendete lokale Datenverarbeitungseinheiten wie der elektronische Assistent (PDA) oder das Mobiltelefon 654A, der Desktop Computer 654B, der Laptop Computer 654C und/oder das Automobil-Computersystem 654N Daten austauschen können. Die Knoten 610 können miteinander Daten austauschen. Sie können physisch oder virtuell in einem oder mehreren Netzwerken wie Private, Community, Public oder Hybrid Clouds zusammengefasst werden (nicht gezeigt), wie vorstehend beschrieben wurde, oder aber in einer Kombination daraus. Dies ermöglicht es der Cloud-Computing-Umgebung 650 Infrastruktur, Plattformen und/oder Software als Dienst anzubieten, für die ein Cloud-Nutzer keine Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es sei darauf hingewiesen, dass die Arten der in 6 gezeigten Datenverarbeitungseinheiten 654A bis N lediglich veranschaulichend sein sollen und dass die Datenverarbeitungsknoten 810 und die Cloud-Computing-Umgebung 650 über eine beliebige Art von Netzwerk und/oder über eine beliebige Art von über ein Netzwerk aufrufbarer Verbindung (z.B. unter Verwendung eines Web-Browsers) mit einer beliebigen Art von computergestützter Einheit Daten austauschen können.
  • Unter Bezugnahme auf 7 wird ein Satz von funktionalen Abstraktionsschichten gezeigt, die durch die Cloud-Computing-Umgebung 650 (6) bereitgestellt werden. Es sollte von vornherein klar sein, dass die in 7 gezeigten Komponenten, Schichten und Funktionen lediglich veranschaulichend sein sollen und Ausführungsformen der Offenbarung nicht darauf beschränkt sind. Wie abgebildet ist, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
  • Eine Hardware- und Software-Schicht 760 enthält Hardware- und Software-Komponenten. Zu Beispielen für Hardware-Komponenten gehören: Mainframe Computer 761; auf der RISC-Architektur (Reduced Instruction Set Computer) beruhende Server 762; Server 763; Blade-Server 764; Speichereinheiten 765; und Netzwerke sowie Netzwerkkomponenten 766. In einigen Ausführungsformen enthalten Software-Komponenten eine Netzwerk-Anwendungsserver-Software 767 und eine Datenbank-Software 768.
  • Eine Virtualisierungsschicht 770 stellt eine Abstraktionsschicht bereit, aus der die folgenden Beispiele für virtuelle Einheiten bereitgestellt werden können: virtuelle Server 771, virtueller Speicher 772, virtuelle Netzwerke 773, darunter virtuelle private Netzwerke, virtuelle Anwendungen und Betriebssysteme 774; und virtuelle Clients 775.
  • In einem Beispiel kann eine Verwaltungsschicht 780 die nachfolgend beschriebenen Funktionen bereitstellen. Eine Ressourcen-Bereitstellung 781 stellt die dynamische Beschaffung von Datenverarbeitungsressourcen sowie anderen Ressourcen bereit, die zum Durchführen von Aufgaben innerhalb der Cloud-Computing-Umgebung verwendet werden. Ein Messen und eine Preisfindung 782 stellen die Kostenverfolgung beim Verwenden von Ressourcen innerhalb der Cloud-Computing-Umgebung sowie die Abrechnung oder Rechnungsstellung für den Verbrauch dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Anwendungs-Software-Lizenzen aufweisen. Eine Sicherheit stellt die Identitätsüberprüfung für Cloud-Nutzer und Aufgaben sowie Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal 783 stellt Nutzern und Systemadministratoren einen Zugriff auf die Cloud-Computing-Umgebung bereit. Eine Verwaltung des Dienstumfangs 784 stellt die Zuordnung und Verwaltung von Cloud-Computing-Ressourcen bereit, sodass die benötigten Dienstziele erreicht werden. Ein Planen und Erfüllen von Vereinbarungen zum Dienstumfang (Service Level Agreement, SLA) 985 stellt die Vorab-Anordnung und die Beschaffung von Cloud-Computing-Ressourcen, für die eine zukünftige Anforderung vorausgesehen wird, gemäß einer SLA bereit.
  • Eine Arbeitslastenschicht 790 stellt Beispiele für die Funktionalität bereit, für die die Cloud-Computing-Umgebung verwendet werden kann. Beispiele für Auslastungen und Funktionen, die von dieser Schicht bereitgestellt werden können, lauten: Zuordnung und Navigation 791; Software-Entwicklung und Lebenszyklusverwaltung 792; Bereitstellung von virtuellen Schulungen 793; Datenanalyseverarbeitung 794; Transaktionsverarbeitung 795; und Software-Empfehlungsdienste 796, wie hierin dargelegt.
  • Schlussfolgerung
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Lehren wurden zum Zwecke der Veranschaulichung dargelegt und sind nicht als vollständig oder auf die offenbarten Ausführungsformen beschränkt zu verstehen. Der Fachmann weiß, dass zahlreiche Modifikationen und Abwandlungen möglich sind, ohne vom inhaltlichen Umfang und gedanklichen Wesensgehalt der beschriebenen Ausführungsformen abzuweichen. Die hierin verwendete Begrifflichkeit wurde gewählt, um die Grundsätze der Ausführungsformen, die praktische Anwendung oder technische Verbesserung gegenüber marktgängigen Technologien bestmöglich zu erläutern bzw. anderen Fachleuten das Verständnis der hierin offenbarten Ausführungsformen zu ermöglichen.
  • Obwohl in den obigen Ausführungen der als bester Zustand erachtete Zustand und/oder andere Beispiele beschrieben wurde, sollte klar sein, dass verschiedene Änderungen daran vorgenommen werden können und dass der hier offenbarte Erfindungsgegenstand in verschiedenen Formen und Beispielen realisiert werden kann, sowie, dass die Lehren auf zahlreiche Anwendungen angewendet werden können, von denen hier nur einige wenige beschrieben wurden. Mit den folgenden Ansprüchen sollen sämtliche Anwendungen, Änderungen und Abwandlungen beansprucht werden, die innerhalb des tatsächlichen inhaltlichen Umfangs der vorliegenden Lehren liegen.
  • Die hier erörterten Komponenten, Schritte, Merkmale, Objekte, Vorzüge und Vorteile dienen lediglich der Veranschaulichung. Weder sie noch die mit ihnen zusammenhängenden Erörterungen sind als Beschränkung des Geltungsumfangs gedacht. Obwohl hier verschiedene Vorteile erörtert wurden, sollte offensichtlich sein, dass nicht alle Ausführungsformen notwendigerweise alle Vorteile enthalten. Sofern nicht anderweitig ausgeführt, stellen alle Messwerte, Werte, Wertungen, Positionen, Größenordnungen, Größen und andere Spezifikationen, die in dieser Beschreibung einschließlich der folgenden Ansprüche genannt werden, keine genauen, sondern ungefähre Angaben dar. Vielmehr sollen sie einen angemessenen Bereich aufweisen, der im Einklang mit den Funktionen steht, auf die sie sich beziehen, sowie damit, was in der zugehörigen Technik üblich ist.
  • Auch zahlreiche andere Ausführungsformen sind denkbar. Hierzu gehören Anwendungen mit weniger, zusätzlichen und/oder anderen Komponenten, Schritten, Merkmalen, Objekten, Vorzügen und Vorteilen. Außerdem gehören hierzu Ausführungen, bei denen die Komponenten und/oder Schritte auf eine andere Weise angeordnet und/oder geordnet werden.
  • Aspekte der vorliegenden Offenbarung werden hierin unter Bezugnahme auf Call-Flow-Darstellungen und/oder Blockschaubilder eines Verfahrens, einer Vorrichtung (Systeme) sowie von Computerprogrammprodukten gemäß Ausführungsformen der vorliegenden Offenbarung beschrieben. Es wird darauf hingewiesen, dass jeder Schritt der Ablaufplandarstellungen und/oder Blockschaubilder sowie Kombinationen von Blöcken in den Call-Flow-Darstellungen und/oder Blockschaubildern mittels computerlesbarer Programmanweisungen ausgeführt werden können.
  • Diese computerlesbaren Programmanweisungen können einem Prozessor eines Computers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, sodass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zum Realisieren der Funktionen/Schritte erzeugen, die in dem Call-Flow-Prozess und/oder dem Block oder den Blöcken der Blockschaubilder festgelegt werden. Diese computerlesbaren Programmanweisungen können auch auf einem computerlesbaren Speichermedium gespeichert werden, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, sodass das computerlesbare Speichermedium mit darauf gespeicherten Anweisungen ein Herstellungsprodukt aufweist, wie z.B. Anweisungen, die Aspekte der Funktion bzw. des Schritts realisieren, die bzw. der in dem Call-Flow und/oder dem Block oder den Blöcken der Blockschaubilder festgelegt werden.
  • Die computerlesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer, der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen computerrealisierten Prozess zu erzeugen, sodass die auf dem Computer, der anderen programmierbaren Vorrichtung oder der anderen Einheit ausgeführten Anweisungen die Funktionen/Schritte realisieren, die in dem Call-Flow-Prozess und/oder dem Block bzw. den Blöcken der Blockschaubilder festgelegt werden.
  • Der Ablaufplan und die Blockschaubilder in den Figuren veranschaulichen die Architektur, Funktionalität und den Betrieb möglicher Realisierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Offenbarung. In diesem Zusammenhang kann jeder Block in dem Call-Flow-Prozess oder den Blockschaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zum Realisieren der festgelegten logischen Funktion bzw. Funktionen aufweisen. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaubilder und/oder der Call-Flow-Darstellung sowie Kombinationen aus Blöcken in den Blockschaubildern und/oder der Call-Flow-Prozess durch spezielle Systeme auf Hardware-Grundlage realisiert werden können, die die festgelegten Funktionen oder Schritte durchführen oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
  • Obwohl die vorangegangenen Ausführungen in Verbindung mit beispielhaften Ausführungsformen beschrieben wurden, sollte klar sein, dass der Begriff „beispielhaft“ lediglich als ein Beispiel und nicht als das Beste oder Optimale gemeint ist. Sofern im Vorangegangenen nicht unmittelbar erwähnt, soll keine der Aussagen oder Veranschaulichungen eine Zweckbestimmung einer beliebigen Komponente, eines Schritts, Merkmals, Objekts, Vorzugs, Vorteils oder einer Entsprechung für die Öffentlichkeit beabsichtigen oder dahingehend interpretiert werden, unabhängig davon, ob dies in den Ansprüchen entsprechend genannt wird.
  • Vielmehr dürfte offensichtlich sein, dass die hier verwendeten Begriffe und Ausdrücke die übliche Bedeutung besitzen, wie sie solchen Begriffen und Ausdrücken in ihren entsprechenden Forschungs- und Wissenschaftsbereichen zukommt, mit Ausnahme von Fällen, in denen davon abweichende spezifische Bedeutungen hierin festgelegt wurden. Relative Begriffe wie „erster“ und „zweiter“ und dergleichen können lediglich dafür verwendet werden, eine Einheit oder Aktion von einer weiteren zu unterscheiden, ohne eine tatsächliche derartige Beziehung oder Reihenfolge zwischen solchen Einheiten oder Aktionen zwingend zu erfordern oder nahezulegen. Die Begriffe „weist auf“, „aufweisend“ und jegliche andere Abwandlung hiervon sollen einen nicht ausschließlichen Einschluss ausdrücken, so dass ein Prozess, Verfahren, Artikel oder eine Vorrichtung, der bzw. die eine Liste von Elementen aufweist, nicht nur diese Elemente enthält, sondern auch andere Elemente enthalten kann, die nicht ausdrücklich aufgeführt oder einem solchen Prozess, Verfahren, Artikel bzw. einer solchen Vorrichtung innewohnend sind. Ein Element mit vorangestelltem „ein/einer/eine“ und abgeleiteten Formen hiervon schließt ohne weitere Beschränkungen nicht das Vorhandensein zusätzlicher, identischer Elemente in dem Prozess, Verfahren, Artikel bzw. der Vorrichtung aus, aus dem bzw. der das Element besteht.
  • Die Zusammenfassung der Offenbarung wird bereitgestellt, um dem Leser eine schnelle Prüfung der Natur der technischen Offenbarung ermöglichen. Dabei versteht sich von selbst, dass sie nicht dazu dient, den inhaltlichen Umfang oder die Bedeutung der Ansprüche zu interpretieren oder zu beschränken. Darüber hinaus wird aus der vorangegangenen ausführlichen Beschreibung offensichtlich, dass verschiedene Merkmale in verschiedenen Ausführungen zusammengefasst werden, um die Offenbarung zu straffen. Dieses Offenbarungsverfahren bedeutet nicht, dass die beanspruchten Ausführungsformen mehr Merkmale haben sollen, als dies in jedem Anspruch ausdrücklich geltend gemacht wird. Wie die folgenden Ansprüche deutlich machen, liegt der Erfindungsgegenstand vielmehr in weniger als allen Merkmalen einer einzigen offenbarten Ausführungsform. Somit bilden die folgenden Ansprüche einen Bestandteil der ausführlichen Beschreibung, wobei jeder Anspruch als ein getrennt beanspruchter Gegenstand für sich selbst steht.

Claims (9)

  1. Verfahren zum Ermitteln einer möglichen Auswirkung von Software-Aktualisierungen auf eine Datenverarbeitungseinheit, aufweisend: Aufzeichnen eines Profils von Software- und Hardware-Elementen, die aktuell in jeder Datenverarbeitungseinheit vorhanden sind, in einem Netzwerk mit einer Mehrzahl von Datenverarbeitungseinheiten; Empfangen einer Anfrage für eine Software-Anwendungsaktualisierung für eine Software-Anwendung, die sich in einer ersten Datenverarbeitungseinheit befindet; Identifizieren einer Einheitenkonfiguration für die erste Datenverarbeitungseinheit auf Grundlage der Software- und Hardware-Elemente, die aktuell in der ersten Datenverarbeitungseinheit vorhanden sind; Identifizieren anderer Datenverarbeitungseinheiten in dem Netzwerk, die die Software-Anwendungsaktualisierung installiert haben; Abrufen einer Historie eines Betriebsverhaltens, das der Software-Anwendungsaktualisierung in den identifizierten anderen Datenverarbeitungseinheiten zugehörig ist; Abrufen des Profils für jede der anderen Datenverarbeitungseinheiten; Analysieren des Profils für jede der anderen Datenverarbeitungseinheiten auf Hardware- oder Software-Konflikte mit der Software-Anwendung; Ermitteln, ob die Software-Anwendungsaktualisierung womöglich einen Fehler in den Software- oder Hardware-Elementen verursachen wird, die aktuell in der ersten Datenverarbeitungseinheit vorhanden sind, auf Grundlage der Historie eines der Softwareanwendungsaktualisierung zugehörigen Betriebsverhaltens in den identifizierten anderen Datenverarbeitungseinheiten und auf Grundlage eines Zustands einer Ähnlichkeit zwischen dem analysierten Profil für jede der anderen Datenverarbeitungseinheiten und dem Profil der ersten Datenverarbeitungseinheit; und Vorlegen einer Empfehlung auf Risikogrundlage dazu, ob die Software-Aktualisierung in der ersten Datenverarbeitungseinheit installiert werden sollte, für einen Endbenutzer der ersten Datenverarbeitungseinheit auf Grundlage der Ermittlung.
  2. Verfahren nach Anspruch 1, des Weiteren aufweisend: Identifizieren einer zweiten Datenverarbeitungseinheit, wobei die zweite Datenverarbeitungseinheit eine stabile Betriebskonfiguration zeigt; Identifizieren von Attributen, die sich auf Fehlerereignisse beziehen, die der Software-Aktualisierung in den betreffenden anderen Datenverarbeitungseinheiten zugehörig sind; Analysieren von Unterschieden zwischen der Konfiguration der zweiten Datenverarbeitungseinheit und jeder der betreffenden anderen Datenverarbeitungseinheiten mit Fehlerereignissen, die der Software-Aktualisierung zugehörig sind; und Ermitteln der Unterschiede in der Konfiguration der zweiten Datenverarbeitungseinheit und der betreffenden anderen Datenverarbeitungseinheiten, wobei die Empfehlung auf Risikogrundlage auf Grundlage der ermittelten Unterschiede in der Konfiguration erfolgt.
  3. Verfahren nach Anspruch 2, wobei die identifizierten Attribute einen Inhalt der installierten Software-Anwendungsaktualisierung, Konflikte mit anderen Software-Anwendungen in den betreffenden Datenverarbeitungseinheiten und Hardware in den betreffenden Datenverarbeitungseinheiten enthalten, die nicht erwartungsgemäß auf die aktualisierte Software-Anwendung reagiert.
  4. Verfahren nach Anspruch 1, des Weiteren aufweisend ein Aufzeichnen des Profils in der ersten Datenverarbeitungseinheit unmittelbar vor oder nach einer Installation der Software-Anwendungsaktualisierung in der ersten Datenverarbeitungseinheit.
  5. Verfahren nach Anspruch 1, des Weiteren aufweisend: Empfangen eines Gewichtungswerts von dem Endbenutzer; und Zuweisen des Gewichtungswerts zu der Software-Anwendung, wobei die Empfehlung, ob die Software-Aktualisierung in der ersten Datenverarbeitungseinheit installiert werden sollte, des Weiteren auf Grundlage des Gewichtungswerts der Software-Anwendung erfolgt.
  6. Verfahren nach Anspruch 1, des Weiteren aufweisend: Empfangen eines Gewichtungswerts von einem Systemadministrator; Zuweisen des Gewichtungswerts zu der Software-Anwendung, wobei die Empfehlung, ob die Software-Aktualisierung in der ersten Datenverarbeitungseinheit installiert werden sollte, des Weiteren auf Grundlage des Gewichtungswerts der Software-Anwendung erfolgt.
  7. Verfahren nach Anspruch 1, des Weiteren aufweisend: Protokollieren von Fehler- oder Warnmeldungen von den anderen Datenverarbeitungseinheiten, die die Software-Anwendungsaktualisierung installiert haben; und wobei die Ermittlung, ob die Software-Anwendungsaktualisierung womöglich einen Fehler in den Software- oder Hardware-Elementen verursachen wird, die aktuell in der ersten Datenverarbeitungseinheit vorhanden sind, auf Grundlage einer Historie der protokollierten Fehler- und Warnmeldungen von den anderen Datenverarbeitungseinheiten in dem Netzwerk erfolgt, die die Softwareanwendungsaktualisierung installiert haben.
  8. Computerprogrammprodukt zum Ermitteln einer möglichen Auswirkung von Software-Aktualisierungen auf eine Datenverarbeitungseinheit, wobei das Computerprogrammprodukt aufweist: ein oder mehrere computerlesbare Speichermedien sowie Programmanweisungen, die gemeinsam auf dem einen oder den mehreren computerlesbaren Speichermedien gespeichert werden, wobei die Programmanweisungen aufweisen: Aufzeichnen eines Profils von Software- und Hardware-Elementen, die aktuell in jeder Datenverarbeitungseinheit vorhanden sind, in einem Netzwerk mit einer Mehrzahl von Datenverarbeitungseinheiten; Empfangen einer Anfrage für eine Software-Anwendungsaktualisierung für eine Software-Anwendung, die sich in einer ersten Datenverarbeitungseinheit befindet; Identifizieren einer Einheitenkonfiguration für die erste Datenverarbeitungseinheit auf Grundlage der Software- und Hardware-Elemente, die aktuell in der ersten Datenverarbeitungseinheit vorhanden sind; Identifizieren anderer Datenverarbeitungseinheiten in dem Netzwerk, die die Software-Anwendungsaktualisierung installiert haben; Abrufen einer Historie eines Betriebsverhaltens, das der Software-Anwendungsaktualisierung in den identifizierten anderen Datenverarbeitungseinheiten zugehörig ist; Abrufen des Profils für jede der anderen Datenverarbeitungseinheiten; Analysieren des Profils für jede der anderen Datenverarbeitungseinheiten auf Hardware- oder Software-Konflikte mit der Software-Anwendung; Ermitteln, ob die Software-Anwendungsaktualisierung womöglich einen Fehler in den Software- oder Hardware-Elementen verursachen wird, die aktuell in der ersten Datenverarbeitungseinheit vorhanden sind, auf Grundlage der Historie eines der Softwareanwendungsaktualisierung zugehörigen Betriebsverhaltens in den identifizierten anderen Datenverarbeitungseinheiten und auf Grundlage eines Zustands einer Ähnlichkeit zwischen dem analysierten Profil für jede der anderen Datenverarbeitungseinheiten und dem Profil der ersten Datenverarbeitungseinheit; und Vorlegen einer Empfehlung auf Risikogrundlage dazu, ob die Software-Aktualisierung in der ersten Datenverarbeitungseinheit installiert werden sollte, für einen Endbenutzer der ersten Datenverarbeitungseinheit auf Grundlage der Ermittlung.
  9. Aktualisierungsempfehlungs-Computerserver, aufweisend: eine Netzwerkverbindung; ein oder mehrere computerlesbare Speichermedien; einen Prozessor, der mit der Netzwerkverbindung verbunden wird und mit dem einen oder den mehreren computerlesbaren Speichermedien verbunden wird; und ein Computerprogrammprodukt, aufweisend Programmanweisungen, die gemeinsam auf dem einen oder den mehreren computerlesbaren Speichermedien gespeichert werden, wobei die Programmanweisungen aufweisen: Aufzeichnen eines Profils von Software- und Hardware-Elementen, die aktuell in jeder Datenverarbeitungseinheit vorhanden sind, in einem Netzwerk mit einer Mehrzahl von Datenverarbeitungseinheiten; Empfangen einer Anfrage für eine Software-Anwendungsaktualisierung für eine Software-Anwendung, die sich in einer ersten Datenverarbeitungseinheit befindet; Identifizieren einer Einheitenkonfiguration für die erste Datenverarbeitungseinheit auf Grundlage der Software- und Hardware-Elemente, die aktuell in der ersten Datenverarbeitungseinheit vorhanden sind; Identifizieren anderer Datenverarbeitungseinheiten in dem Netzwerk, die die Software-Anwendungsaktualisierung installiert haben; Abrufen einer Historie eines Betriebsverhaltens, das der Software-Anwendungsaktualisierung in den identifizierten anderen Datenverarbeitungseinheiten zugehörig ist; Abrufen des Profils für jede der anderen Datenverarbeitungseinheiten; Analysieren des Profils für jede der anderen Datenverarbeitungseinheiten auf Hardware- oder Software-Konflikte mit der Software-Anwendung; Ermitteln, ob die Software-Anwendungsaktualisierung womöglich einen Fehler in den Software- oder Hardware-Elementen verursachen wird, die aktuell in der ersten Datenverarbeitungseinheit vorhanden sind, auf Grundlage der Historie eines der Softwareanwendungsaktualisierung zugehörigen Betriebsverhaltens in den identifizierten anderen Datenverarbeitungseinheiten und auf Grundlage eines Zustands einer Ähnlichkeit zwischen dem analysierten Profil für jede der anderen Datenverarbeitungseinheiten und dem Profil der ersten Datenverarbeitungseinheit; und Vorlegen einer Empfehlung auf Risikogrundlage dazu, ob die Software-Aktualisierung in der ersten Datenverarbeitungseinheit installiert werden sollte, für einen Endbenutzer der ersten Datenverarbeitungseinheit auf Grundlage der Ermittlung.
DE102021130957.3A 2020-12-23 2021-11-25 Empfehlungen zur stabilität von software-aktualisierungen Pending DE102021130957A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/133,491 US12032461B2 (en) 2020-12-23 Software upgrade stability recommendations
US17/133,491 2020-12-23

Publications (1)

Publication Number Publication Date
DE102021130957A1 true DE102021130957A1 (de) 2022-06-23

Family

ID=80080981

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021130957.3A Pending DE102021130957A1 (de) 2020-12-23 2021-11-25 Empfehlungen zur stabilität von software-aktualisierungen

Country Status (4)

Country Link
JP (1) JP2022100301A (de)
CN (1) CN114661319A (de)
DE (1) DE102021130957A1 (de)
GB (1) GB2604007A (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114422486B (zh) * 2022-03-14 2024-01-16 潍柴动力股份有限公司 一种终端的软件版本升级方法、系统以及车辆
CN118170418A (zh) * 2024-05-15 2024-06-11 威海双子星软件科技有限公司 一种软件系统维护信息的管理方法

Also Published As

Publication number Publication date
CN114661319A (zh) 2022-06-24
GB2604007A (en) 2022-08-24
JP2022100301A (ja) 2022-07-05
US20220197770A1 (en) 2022-06-23
GB202117487D0 (en) 2022-01-19

Similar Documents

Publication Publication Date Title
DE112020004623T5 (de) Ml-basierte ereignishandhabung
DE112010004420T5 (de) Verfahren und System zur Verbesserung der Ausführungszeit von Software durch Optimierung elnes Leistungsmodells
DE112018003006T5 (de) Erkennung und entschärfung von angriffen von aussen bei der datenverarbeitung
US9720999B2 (en) Meta-directory control and evaluation of events
DE102021109767A1 (de) Systeme und methoden zur vorausschauenden sicherheit
DE112018005011T5 (de) Ausführen eines kognitiven lern-workflows
DE112012000444T5 (de) Ermitteln einer optimalen Datenverarbeitungsumgebung zum Ausführen eines Abbildes
DE112011103829T5 (de) Verfahren und System zum Erzeugen einer virtuellen Maschine auf der Grundlage von Vorlagen
US11329869B2 (en) Self-monitoring
DE112019005729T5 (de) Erkennen von sicherheitsrisiken in zusammenhang mit einer software-komponente
DE102016208672A1 (de) Verwalten von Redundanzen zwischen Anwendungs-Bundles
DE102021130957A1 (de) Empfehlungen zur stabilität von software-aktualisierungen
DE112019001433T5 (de) Datenanonymisierung
DE112018001524T5 (de) Gesundheitsdaten-analysesystem-verwaltung
DE112018002954T5 (de) Bereitstellen eines konfigurationsabhängigen arbeitsablaufs
DE112020004967T5 (de) Änderungsverwaltung und analytik für microservices
DE112021003276T5 (de) Ressourcenverwaltung einer softwareanwendung mit mehreren softwarekomponenten
DE112021005636T5 (de) Migrieren von komplexen legacy-anwendungen
DE112020005306T5 (de) Implementierung von arbeitslasten in einer multi-cloud-umgebung
DE112022001326T5 (de) Erzeugen und ausführen von prozessabläufen zum korrigieren von datenqualitätsproblemen in datenbeständen
DE112016005867T5 (de) Live-Pipeline-Vorlagen - Erstellung und Erweiterbarkeit der Vorlagen
DE112021004958T5 (de) Skalierbares modellieren bei grossen sammlungen von zeitreihen
DE102014116744B4 (de) Management von Informationstechnologieressourcen
DE112019002052T5 (de) Datenschutzsensibilisierung bei der bereitstellung von arbeitslasten
DE112021003499T5 (de) Skalierbare operatoren für eine automatische verwaltung von arbeitslasten in hybriden cloud-umgebungen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R081 Change of applicant/patentee

Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, A, US

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

R082 Change of representative

Representative=s name: RICHARDT PATENTANWAELTE PARTG MBB, DE

R082 Change of representative

Representative=s name: RICHARDT PATENTANWAELTE PARTG MBB, DE