-
HINTERGRUND
-
Die vorliegende Erfindung bezieht sich im Allgemeinen auf das Gebiet des Aktualisierens von Einheiten und im Besonderen auf ein Optimieren eines Planens einer Software- und Firmware-Aktualisierung.
-
Eine Software-Aktualisierung modifiziert, korrigiert oder verändert ein beliebiges momentanes Software-Programm auf einem Computer, einer mobilen Handheld-Einheit oder einer smarten Appliance. Software-Aktualisierungen beziehen typischerweise eher kleine Verbesserungen als große Veränderungen ein. Software-Aktualisierungen können etwaige neue Sicherheitsprobleme, Software-Fehler oder Probleme mit der vorhandenen Software beheben. Software-Aktualisierungen sind häufig notwendig, damit eine Einheit ohne Software-Probleme weiterlaufen kann. Indem Software-Aktualisierungen auf dem Laufenden gehalten werden, wird sichergestellt, dass eine Einheit die neueste Software ausführt. Während kleinere Software-Aktualisierungen stattfinden können, wenn die Einheit, welche die Aktualisierung benötigt, in Verwendung durch den Benutzer ist, erfordern größere Software-Aktualisierungen unter Umständen, dass die Einheit nicht in Verwendung ist, wenn die Software-Aktualisierung durchgeführt wird.
-
Eine Firmware-Aktualisierung ist ein Software-Programm, das verwendet wird, um die Firmware einer Benutzereinheit zu aktualisieren. Eine Firmware-Aktualisierung rüstet eine Datenverarbeitungseinheit mit fortschrittlichen Arbeitsanweisungen auf, ohne dass wie auch immer geartete Hardware der Benutzereinheit aufgerüstet werden muss. Firmware-Aktualisierungen werden verwendet, um die Fähigkeiten einer Datenverarbeitungseinheit zu verbessern oder Probleme einer Datenverarbeitungseinheit zu beheben. Indem Firmware-Aktualisierungen auf dem neuesten Stand gehalten werden, ist eine Datenverarbeitungseinheit in der Lage, effizient zu laufen.
-
KURZDARSTELLUNG
-
Gemäß einer Ausführungsform der vorliegenden Erfindung wird ein computerrealisiertes Verfahren zum Aktualisieren einer Einheit offenbart. Das computerrealisierte Verfahren enthält ein Identifizieren, dass eine der Einheit zugehörige Aktualisierung verfügbar ist. Das computerrealisierte Verfahren enthält des Weiteren ein Ermitteln, ob die der Einheit zugehörige verfügbare Aktualisierung zulässig ist. Das computerrealisierte Verfahren enthält des Weiteren als Reaktion darauf, dass die der Einheit zugehörige verfügbare Aktualisierung zulässig ist, ein Ermitteln einer optimalen geplanten Zeit zum Durchführen der Aktualisierung auf der Einheit. Das computerrealisierte Verfahren führt des Weiteren die Aktualisierung auf der Einheit zu der geplanten Zeit durch.
-
Gemäß einer weiteren Ausführungsform der vorliegenden Erfindung wird ein Computerprogrammprodukt zum Aktualisieren einer Einheit offenbart. Das Computerprogrammprodukt enthält ein bzw. eine oder mehrere computerlesbare Speichermedien und Programmanweisungen, die auf dem einen oder den mehreren computerlesbaren Speichermedien gespeichert werden. Die Programmanweisungen enthalten Anweisungen, um zu identifizieren, dass eine der Einheit zugehörige Aktualisierung verfügbar ist. Die Programmanweisungen enthalten des Weiteren Anweisungen, um zu ermitteln, ob die der Einheit zugehörige verfügbare Aktualisierung zulässig ist. Die Programmanweisungen enthalten des Weiteren Anweisungen, um als Reaktion darauf, dass die der Einheit zugehörige verfügbare Aktualisierung zulässig ist, eine optimale geplante Zeit zum Durchführen der Aktualisierung auf der Einheit zu ermitteln. Die Programmanweisungen enthalten des Weiteren Anweisungen, um die Aktualisierung auf der Einheit zu der geplanten Zeit durchzuführen.
-
Gemäß einer weiteren Ausführungsform der vorliegenden Erfindung wird ein Computersystem zum Aktualisieren einer Einheit offenbart. Das Computersystem enthält einen oder mehrere Computerprozessoren, ein bzw. eine oder mehrere computerlesbare Speichermedien und Computerprogrammanweisungen, wobei die Computerprogrammanweisungen auf dem einen oder den mehreren computerlesbaren Speichermedien gespeichert werden, um durch den einen oder die mehreren Computerprozessoren ausgeführt zu werden. Die Programmanweisungen enthalten Anweisungen, um zu identifizieren, dass eine der Einheit zugehörige Aktualisierung verfügbar ist. Die Programmanweisungen enthalten des Weiteren Anweisungen, um zu ermitteln, ob die der Einheit zugehörige verfügbare Aktualisierung zulässig ist. Die Programmanweisungen enthalten des Weiteren Anweisungen, um als Reaktion darauf, dass die der Einheit zugehörige verfügbare Aktualisierung zulässig ist, eine optimale geplante Zeit zum Durchführen der Aktualisierung auf der Einheit zu ermitteln. Die Programmanweisungen enthalten des Weiteren Anweisungen, um die Aktualisierung auf der Einheit zu der geplanten Zeit durchzuführen.
-
Figurenliste
-
Die in der vorliegenden Offenbarung enthaltenen Zeichnungen sind in die Beschreibung aufgenommen und bilden einen Bestandteil hiervon. Sie veranschaulichen Ausführungsformen der vorliegenden Offenbarung und dienen neben der Beschreibung dazu, die Grundsätze der Offenbarung zu erläutern. Die Zeichnungen veranschaulichen lediglich bestimmte Ausführungsformen und bilden keine Beschränkung der Offenbarung.
- 1 ist ein funktionales Blockschaubild einer allgemein als 100 bezeichneten Netzwerk-Datenverarbeitungsumgebung zum Planen einer optimalen Zeit für eine Firmware-Aktualisierung gemäß mindestens einer Ausführungsform der vorliegenden Erfindung.
- 2 ist eine Ablaufplandarstellung, die Arbeitsschritte zum Erzeugen einer Konfigurationsdatei gemäß mindestens einer Ausführungsform der vorliegenden Erfindung darstellt.
- 3 ist eine Ablaufplandarstellung, die Arbeitsschritte zum Planen einer Firmware-Aktualisierung gemäß mindestens einer Ausführungsform der vorliegenden Erfindung darstellt.
- 4 ist ein funktionales Blockschaubild eines allgemein als 400 bezeichneten Datenverarbeitungssystems zum Planen einer optimalen Zeit für eine Software-Aktualisierung gemäß mindestens einer Ausführungsform der vorliegenden Erfindung.
- 5 ist eine Ablaufplandarstellung, die Arbeitsschritte zum Erzeugen von Kalenderoptionen für eine Kindeinheit gemäß mindestens einer Ausführungsform der vorliegenden Erfindung darstellt.
- 6 ist eine Ablaufplandarstellung, die Arbeitsschritte zum Planen einer Software-Aktualisierung gemäß mindestens einer Ausführungsform der vorliegenden Erfindung darstellt.
- 7 ist ein Blockschaubild, das Komponenten eines allgemein als 700 bezeichneten Computers darstellt, die geeignet sind, um ein Aktualisierungsanalyseprogramm 101 gemäß mindestens einer Ausführungsform der vorliegenden Erfindung auszuführen.
- 8 ist eine Cloud-Computing-Umgebung gemäß einer Ausführungsform der vorliegenden Erfindung.
- 9 stellt Abstraktionsmodellschichten gemäß einer Ausführungsform der vorliegenden Erfindung dar.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Die vorliegende Erfindung bezieht sich im Allgemeinen auf das Gebiet des Aktualisierens von Einheiten und im Besonderen auf ein Optimieren eines Planens von Software- und Firmware-Aktualisierungen.
-
Neue Versionen von Software und Firmware werden in regelmäßigen Abständen für einen Benutzer freigegeben, um kleinere Probleme zu beheben, neue Merkmale zu installieren oder die momentane Software oder Firmware auf einer Datenverarbeitungseinheit wie z.B. einem Server, Laptop, einer mobilen Handheld-Einheit oder smarten Appliance anderweitig abzuändern. Software- und Firmware-Aktualisierungen auf einer Datenverarbeitungseinheit auf dem Laufenden zu halten, ist notwendig, um sicherzustellen, dass die Einheit die neueste Version ausführt oder dass die Einheit frei von Fehlern ist. Wenn ein Benutzer ein Aktualisieren seiner bzw. ihrer Einheit verzögert, kann dies dazu führen, dass die Einheit langsam wird, einfriert oder auf ungewollte Weise reagiert und dadurch letztlich die Erfahrung des Benutzers negativ beeinflusst. In manchen Fällen enthalten Software-Aktualisierungen Sicherheitsprogrammkorrekturen. Wenn eine Einheit mit Blick auf die neuesten Software-Aktualisierungen nicht auf dem Laufenden gehalten wird, kann dies in diesen Fällen dazu führen, dass die Einheit Sicherheitslücken ausgesetzt ist.
-
Kleine Aktualisierungen lassen sich möglicherweise im Hintergrund der Einheit durchführen, während die Einheit in Verwendung durch einen Benutzer ist. Bei größeren Aktualisierungen muss die Einheit üblicherweise vorübergehend ausgeschaltet oder sie muss neu gestartet werden, sodass die Einheit für einen Benutzer vorübergehend nicht verfügbar ist. Ein Ausschalten oder Neustarten einer Benutzereinheit kann für einen Benutzer lästig sein und seinen bzw. ihren Arbeitsplan stören. Aus diesem Grund schieben es viele Benutzer hinaus, Aktualisierungen auf ihren Einheiten durchzuführen. Im Allgemeinen können Aufforderungen auf einer Benutzereinheit verwendet werden, um den Benutzer daran zu erinnern, die Software oder Firmware seiner bzw. ihrer Einheit sofort oder zu einem von dem Benutzer festgelegten späteren Zeitpunkt durchzuführen. Bei größeren Aktualisierungen kann es außerdem sein, dass die Benutzereinheit einen ausreichenden Akkuladestand benötigt und zudem mit einem Ladegerät verbunden werden muss.
-
Ausführungsformen der vorliegenden Erfindung berücksichtigen, dass ein Ermitteln der geeignetsten Zeit zum Aktualisieren einer Gruppe von Einheiten schwierig ist, besonders für Einheiten, die nicht an einen einzigen Standort gebunden sind und/oder keine fest geplante Verwendung aufweisen. Wenn ein Benutzer zum Beispiel seine bzw. ihre Einheit momentan verwendet, ist ein sofortiges Aktualisieren der Einheit für den Benutzer vermutlich lästig, da er seine bzw. ihre Einheit momentan in Verwendung hat. Ausführungsformen der vorliegenden Erfindung berücksichtigen des Weiteren, dass, wenn ein Benutzer die Software seiner bzw. ihrer Einheit zu einer geplanten Zeit aktualisieren will und die geplante Zeit zum Aktualisieren der Software der Einheit gekommen ist, die geplante Zeit dem Benutzer womöglich nicht mehr dienlich ist. Entsprechend planen manche Betriebssysteme automatische Aktualisierungen während Tageszeiten mit einer generell geringen Verwendung, die manchen Benutzern dienlich sein kann, anderen jedoch nicht. Der Benutzer kann außerdem einfach vergessen, die Aktualisierung zu der geplanten Zeit durchzuführen, oder zu der geplanten Aktualisierungszeit ist eine Stromquelle und/oder ein Netzkabel womöglich nicht problemlos verfügbar. Jedes dieser Szenarien kann dazu führen, dass eine Einheit eines Benutzers hinsichtlich Software-Aktualisierungen nicht auf dem Laufenden ist, wodurch die Einheit möglichen Sicherheitslücken und ungewollten Leistungsproblemen ausgesetzt sein kann.
-
Ausführungsformen der vorliegenden Erfindung berücksichtigen des Weiteren die folgenden Probleme oder Nachteile beim Planen und Durchführen von Systemaktualisierungen: (i) ein Benutzer verfügt möglicherweise nicht über genug Fachwissen dafür oder fühlt sich unsicher dabei, Systemaktualisierungen selber durchzuführen, weshalb er Unterstützung durch eine erfahrenere Person benötigt; (ii) manche Betriebssysteme erzwingen Aktualisierungen, ohne mit dem Benutzer Rücksprache zu halten, wodurch es zu einem Verlust von Daten und/oder Produktivität kommen kann; (iii) unerfahrene Benutzer wissen womöglich überhaupt nicht, dass Aktualisierungen verfügbar und/oder notwendig sind; und (iv) wichtige Informationen können ungewollt gelöscht werden, wenn eine Einheit nicht innerhalb eines bestimmten zeitlichen Schwellenwerts aktualisiert wird.
-
Ausführungsformen der vorliegenden Erfindung verbessern die oben genannten Defizite, indem sie einen Zeitplan eines Benutzers analysieren, um eine optimale und passende Zeit zum Planen einer Software-Aktualisierung zu finden. Ausführungsformen der vorliegenden Erfindung berücksichtigen, dass viele Faktoren die optimale Zeit für eine Software-Aktualisierung beeinflussen. Entsprechend analysieren Ausführungsformen der vorliegenden Erfindung viele Faktoren wie z.B., ohne jedoch darauf beschränkt zu sein, einen persönlichen und Arbeitskalender eines Benutzers, einen Akkuladestand einer Einheit und/oder einen Ladeschwellenwert einer Einheit, eine Bildschirmzeit einer Einheit, einen Netzwerkstatus und eine WLAN-Verbindung, um eine optimale Zeit dafür zu ermitteln und zu planen, mit einer Software-Aktualisierung fortzufahren. Bei einer Ausführungsform werden für eine Mehrzahl von voneinander abhängigen Einheiten wechselseitig verfügbare Aktualisierungszeiten ermittelt. Bei einer Ausführungsform werden verfügbare Zeiten für künftige Einheitenaktualisierungen gelernt, wobei dies zumindest teilweise eine vergangene Verfügbarkeit von Einheiten für Aktualisierungen und vergangene Aktualisierungszeiten für eine bzw. mehrere Einheiten zur Grundlage hat.
-
Ausführungsformen der vorliegenden Erfindung berücksichtigen des Weiteren, dass Server-Computer-Aktualisierungen in vielerlei Hinsicht kompliziert sind. Aktualisierungen können eine Systemausfallzeit erzwingen, die erneute Anmeldung eines Benutzers bei einem Server-Computer erfordern oder gar mit einem Server nicht kompatibel sein. Wenn die Server-Hardware-Versionen zum Beispiel die neuesten Firmware-Aktualisierungen nicht unterstützen, muss der Server womöglich die derzeitige, ältere Version beibehalten. Umgekehrt benötigen andere Server für die in diesen Servern installierten Hardware-Versionen womöglich keine entsprechende Firmware-Version. In einem weiteren Beispiel benötigen bestimmte Server-Computer für Tests auf Systemebene womöglich eine spezifische Firmware-Version zur Verifizierung. Unter Umständen wünschen Benutzer des Servers zwar keine Firmware-Aktualisierungen für einen bestimmten Code-Datenstrom, sehr wohl jedoch Aktualisierungen für andere Code-Datenströme.
-
Ausführungsformen der vorliegenden Erfindung berücksichtigen des Weiteren, dass ein Planen von Server-Aktualisierungen über einen Cluster von Servern hinweg für einen Server-Computer-Administrator/ein Server-Computer-IT-Team sowohl schwierig als auch aufwendig ist. Zum Beispiel muss möglicherweise eine Aktualisierungszeit für alle Datenverarbeitungseinheiten eines Rechenzentrums ermittelt werden, um notwendige/spezifische Firmware-Aktualisierungen auf einer einzigen Datenverarbeitungseinheit durchzuführen, um eine Ausfallzeit oder eine negative Auswirkung auf die Arbeitslast anderer Einheiten zu minimieren. Darüber hinaus kommen automatische Aktualisierungen womöglich überhaupt nicht in Frage, da unterschiedliche Aktualisierungsversionen benötigt werden, aufgrund der Reihenfolge, in der die Aktualisierungen ausgeführt werden müssen, und aufgrund der Tatsache, dass bestimmte Aktualisierungen womöglich nur für bestimmte Server-Computer anwendbar sind. Zum Beispiel kann es in einem Raum für Systemtests mehrere Testbereiche geben, die sich schwerpunktmäßig mit verschiedenen Funktionen befassen, die verschiedene Arbeitslast-Laufzeiten haben. Bei Codefreigaben und Aktualisierungen kann es Zeiten geben, in denen Testteams keine Server-Aktualisierungen oder keine Aktualisierungen für alle Server, keine Patches ohne Bezug zu einem Testschwerpunkt oder keine Patches benötigen, die nicht auf bestimmte Hardware-Versionen abgestimmt sind. Entsprechend berücksichtigen Ausführungsformen der vorliegenden Erfindung eine Notwendigkeit für das automatische Planen von Maschinenaktualisierungen für eine Server-Gruppe, das die jeweiligen Arbeitslasten, die Verfügbarkeit, die Hardware-Versionen, die Nutzbarkeit und die Aktualisierungsanforderungen des bestimmten Servers der Server-Gruppe in Betracht zieht.
-
Ausführungsformen der vorliegenden Erfindung stellen eine/eine/einen oder mehrere der folgenden Merkmale, Charakteristika, Operationen und/oder Vorteile bereit: (i) Verwalten von Code-Aktualisierungen/-Patches für bestimmte Server in einer rechenzentrumsartigen Umgebung; (ii) Identifizieren geplanter Ereignisse samt einer bzw. mehreren Systemarbeitslasten, um automatisch optimale Zeiten zum Durchführen von Software-Aktualisierungen/-Patches zu ermitteln und dadurch eine Systemausfallzeit zu verringern; (iii) automatisches Aktualisieren verschiedener Server-Computer auf Grundlage einer Server-Computer-Verfügbarkeit und einer bzw. mehreren Firmware-Teildatenstrom-Aktualisierungsanforderungen während einer Systemverwendung/eines Systemtests; und (iv) automatisches Aktualisieren verschiedener Server-Computer auf Grundlage einer Server-Computer-Verfügbarkeit sowie von Server-Hardware-Versionen während Tests und während einer Verwendung (z.B. wenn ein Server-Computer eine veraltete FICON-Karte hat, die eine bestimmte Firmware-Aktualisierung nicht unterstützt, wird eine andere Firmware-Aktualisierung ermittelt, die nicht auf die veraltete FICON-Karte abzielt); und automatisches Planen und Aktualisieren einer Server-Aktualisierung auf Grundlage einer Systemverwendung (wechselseitige Abhängigkeit anderer Server oder Datenverarbeitungseinheiten, die eine Verwendung eines bestimmten Servers erfordern, für den eine Aktualisierung geplant ist), einer Server-Computer-Verfügbarkeit und Firmware-Teildatenstrom-Aktualisierungsanforderungen.
-
Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt mit einem beliebigen möglichen Grad an technischer Integration handeln. Das Computerprogrammprodukt kann ein computerlesbares Speichermedium (oder -medien) mit computerlesbaren Programmanweisungen enthalten, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
-
Bei dem computerlesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch eine Anweisungsausführungseinheit behalten und speichern kann. Bei dem computerlesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des computerlesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (Random Access Memory, RAM), ein Festwertspeicher (Read-Only Memory ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (Erasable Programmable Read-Only Memory, EPROM) bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (Static Random Access Memory, SRAM), ein tragbarer CD-ROM, eine DVD (Digital Versatile Disc), ein Speicher-Stick, eine Diskette, eine mechanisch kodierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein computerlesbares Speichermedium soll in der Verwendung hierin nicht als transitorische Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
-
Hierin beschriebene computerlesbare Programmanweisungen können von einem computerlesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetzwerk und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt computerlesbare Programmanweisungen aus dem Netzwerk und leitet die computerlesbaren Programmanweisungen zur Speicherung in einem computerlesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
-
Bei computerlesbaren Programmanweisungen zum Ausführen von Operationen der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die computerlesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). Bei manchen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, im Feld programmierbare Gatter-Anordnungen (Field-Programmable Gate Arrays, FPGA) oder programmierbare Logikanordnungen (Programmable Logic Arrays, PLA) die computerlesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der computerlesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
-
Aspekte der vorliegenden Erfindung werden hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaubildern mittels computerlesbarer Programmanweisungen ausgeführt werden können.
-
Diese computerlesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, 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 zur Umsetzung der in dem Block bzw. den Blöcken des Ablaufplans und/oder des Blockschaubilds festgelegten Funktionen/Schritte erzeugen. 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, auf dem Anweisungen gespeichert werden, ein Herstellungsprodukt aufweist, darunter Anweisungen, die Aspekte der bzw. des in dem Block bzw. den Blöcken der Ablaufpläne und/oder Blockschaubilder angegebenen Funktion/Schritts umsetzen.
-
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 bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen computerrealisierten Prozess zu erzeugen, sodass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder Blockschaubilder festgelegten Funktionen/Schritte umsetzen.
-
Die Ablaufpläne und die Blockschaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion bzw. Funktionen aufweisen. Bei manchen 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 Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
-
Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung wurden zum Zwecke der Veranschaulichung vorgelegt 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 von Umfang und Geist 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.
-
Die vorliegende Erfindung wird nun in Bezug auf die Figuren detailliert beschrieben. 1 ist ein funktionales Blockschaubild einer allgemein als 100 bezeichneten Netzwerk-Datenverarbeitungsumgebung zum Planen einer optimalen Zeit für eine Firmware-Aktualisierung gemäß mindestens einer Ausführungsform der vorliegenden Erfindung. 1 stellt eine Veranschaulichung von lediglich einer einzigen Realisierung bereit und impliziert keinerlei Beschränkungen mit Blick auf die Umgebungen, in denen verschiedene Ausführungsformen realisiert werden können. Der Fachmann kann viele Abwandlungen an der dargestellten Umgebung vornehmen, ohne von dem durch die Ansprüche geltend gemachten inhaltlichen Umfang der Erfindung abzuweichen.
-
Das Datenverarbeitungssystem 100 enthält einen Administrator-Server-Computer 105, einen Aktualisierungsanalyse-Server-Computer 135 und Server-Computer 145, die über ein Netzwerk 130 miteinander verbunden werden. Bei verschiedenen Ausführungsformen der Erfindung sind der Administrator-Server-Computer 105, der Aktualisierungsanalyse-Server-Computer 135 und der Server-Computer 145 jeweils Datenverarbeitungseinheiten, die eine eigenständige Einheit, ein Verwaltungs-Server, ein Web-Server, eine mobile Einheit oder eine beliebige andere elektronische Einheit bzw. ein beliebiges anderes elektronisches Datenverarbeitungssystem sein können, die bzw. das in der Lage ist, Daten zu empfangen, zu senden und zu verarbeiten. Bei einer Ausführungsform stehen der Administrator-Server-Computer 100, der Aktualisierungsanalyse-Server-Computer 135 und der Server-Computer 145 für ein Server-Datenverarbeitungssystem, das mehrere Computer als ein Server-System verwendet, z.B. in einer Cloud-Computing-Umgebung. Bei einer Ausführungsform stehen der Administrator-Server-Computer 100, der Aktualisierungsanalyse-Server-Computer 135 und der Server-Computer 145 für ein Datenverarbeitungssystem, das geclusterte Computer und Komponenten (z.B. Datenbank-Server-Computer, Anwendungs-Server-Computer, Web-Server-Computer usw.) verwendet, die als ein einziger Pool von nahtlosen Ressourcen dienen, wenn innerhalb der Netzwerk-Datenverarbeitungsumgebung 100 auf sie zugegriffen wird. Im Allgemeinen stehen der Administrator-Server-Computer 105, der Aktualisierungsanalyse-Server-Computer 135 und der Server-Computer 145 für jede programmierbare elektronische Einheit oder Kombination von programmierbaren elektronischen Einheiten, die in der Lage sind, maschinenlesbare Programmanweisungen auszuführen und miteinander sowie mit anderen (nicht dargestellten) Einheiten über ein Netzwerk wie z.B. das Netzwerk 130 innerhalb der Netzwerk-Datenverarbeitungsumgebung 100 Daten auszutauschen.
-
Der Administrator-Server-Computer 105 enthält einen Administratorplan 110 und eine Server-Liste 111. Bei einer Ausführungsform steuert der Administrator-Server-Computer 105 Aktualisierungen für den Server-Computer 145. Bei einer Ausführungsform überwacht der Administrator-Server-Computer 105 die Leistungsbedingungen und Arbeitslasten des Server-Computers 145. Bei einer Ausführungsform überträgt der Administrator-Server-Computer 105 Aktualisierungen an andere Server in dem Netzwerk 130, wie z.B. an den Server-Computer 145. Bei einer Ausführungsform genehmigt der Administrator-Server-Computer 105 automatisch und/oder über einen Benutzeradministrator Firmware-Aktualisierungen, die einem oder mehreren der Server-Computer 145 zugeteilt werden sollen.
-
Bei einer Ausführungsform enthält der Plan 110 Informationen zu einem Plan des Administrator-Server-Computers 105. Bei einer Ausführungsform enthält der Plan 110 Informationen zu der momentanen und/oder künftigen Arbeitslast des Administrator-Servers 105 in Bezug auf Aktualisierungen, die für den Server-Computer 145 durchgeführt werden. Bei einer Ausführungsform enthält der Plan 110 Informationen und Zeiten für andere administrative Aufgaben zusätzlich zu Aktualisierungen. Zum Beispiel können diese administrativen Aufgaben verschiedene Besprechungen, eine Mittagspause, Termine oder andere Ereignisse enthalten, die einem bestimmten Benutzer mit Administratorrechten zugehörig sind. Bei einer Ausführungsform enthält der Plan 110 Informationen zu den Zeiten aus der Server-Liste 111 des Server-Computers 145, für dessen Aktualisierung der Server-Computer-Administrator 105 verantwortlich ist. Bei einer Ausführungsform enthält die Server-Liste 111 eine Liste der Server-Computer, die durch den Server-Computer-Administrator 105 verwaltet werden.
-
Bei einer Ausführungsform wird den in der Server-Liste 111 enthaltenen Server-Computern ein Prioritätswert zugewiesen. Zum Beispiel würde ein höherer Prioritätswert für einen Server-Computer vor einen Server-Computer mit einem niedrigeren Prioritätswert gestellt werden, um gemäß dem Plan 110 aktualisiert zu werden. Ein Server-Computer mit einem höheren Prioritätswert würde somit vor einem Server-Computer mit einem niedrigeren Prioritätswert aktualisiert werden. Bei einer Ausführungsform beruht ein Prioritätswert auf einem Ermitteln der Notwendigkeit, für den Server-Computer 145 eine Server-Aktualisierung durchzuführen. Zum Beispiel hat ein Server mit einer Firmware-Version 2.0 eine höhere Notwendigkeit, aktualisiert zu werden, als ein Server mit einer Firmware-Version 2.1. Bei einer Ausführungsform wird ein Prioritätswert ermittelt, indem die momentane Firmware und die Firmware-Aktualisierung verglichen werden. Bei einer Ausführungsform verändert sich die Server-Liste 111 im Laufe der Zeit, indem ein durch den Server-Computer-Administrator 105 verwalteter Server-Computer 145 entweder hinzugefügt oder entfernt wird.
-
Der Aktualisierungsanalyse-Server 135 enthält ein Aktualisierungsanalyseprogramm 101, das des Weiteren einen Firmware-Aktualisierungsanalysator 600, einen Firmware-Aktualisierungsplaner 140 und einen Systemprofil-Lerner 500 enthält. Bei einer Ausführungsform ist der Firmware-Aktualisierungsanalysator 600 ein Modul oder Teilprogramm des Aktualisierungsanalyseprogramms 101, das Firmware-Aktualisierungen für den Server-Computer 145 analysiert. Bei einer Ausführungsform kombiniert der Firmware-Aktualisierungsanalysator 600 in dem Administratorplan 110 enthaltene Informationen mit den (weiter unten in Bezug auf 4 ausführlicher beschriebenen) Verfügbarkeitsinformationen eines oder mehrerer der Server-Computer 145, um zu ermitteln, ob ein bestimmter Server-Computer 145 eine Aktualisierung benötigt, und wenn eine Aktualisierung benötigt wird, ob die Aktualisierung zulässig ist.
-
Der Firmware-Aktualisierungsplaner 140 ist ein Modul oder Teilprogramm des Aktualisierungsanalyseprogramms 101, das Firmware-Aktualisierungen für einen oder mehrere der Server-Computer 145 plant. Bei einer Ausführungsform plant und speichert der Firmware-Aktualisierungsplaner 140 Firmware-Aktualisierungserinnerungen innerhalb eines Arbeitslast-/Ereignisplans 150 des Server-Computers 145. Bei einer Ausführungsform plant und speichert der Firmware-Aktualisierungsplaner 140 Firmware-Aktualisierungserinnerungen innerhalb des Plans 110 des Administrator-Server-Computers 105.
-
Der Systemprofil-Lerner 500 ist ein Modul oder Teilprogramm des Aktualisierungsanalyseprogramms 101, welches das betreffende Systemkonfigurationsprofil 155 des Server-Computers 145 ermittelt. Bei einer Ausführungsform ermittelt der Systemprofil-Lerner 500 die Firmware- oder Hardware-Versionen des Server-Computers 145. Bei einer Ausführungsform ermittelt der Systemprofil-Lerner 500 die verfügbaren Zeiten des Server-Computers 145 zum Durchführen von Aktualisierungen. Weitere Ausführungsformen des Systemprofil-Lerners 500 werden weiter unten in Bezug auf 2 ausführlicher beschrieben.
-
Der Server-Computer 145 enthält den Arbeitslast-/Ereignisplan 150, das Systemkonfigurationsprofil 155, System-Firmware-Versionen 160 und System-Hardware-Versionen 165. Bei einer Ausführungsform wird der Server-Computer 145 durch den Administrator-Server-Computer 105 verwaltet. Bei einer Ausführungsform enthält der Arbeitslast-/Ereignisplan 150 historische Arbeitslastdaten, die einem bestimmten Server-Computer 145 zugehörig sind. Bei einer Ausführungsform enthält der Arbeitslast-/Ereignisplan 150 geplante Ereignisse wie z.B. Software- oder Firmware-Aktualisierungen, momentane und/oder künftige Arbeitslasten und Systemausfallzeiten, die einem bestimmten Server-Computer 145 zugehörig sind. Bei einer Ausführungsform enthält das Systemkonfigurationsprofil 155 entsprechende Konfigurationsparameter für den Server-Computer 145. Bei einer Ausführungsform enthält das Systemkonfigurationsprofil 155 die Hardware- und Firmware-Versionen, die einem Server-Computer 145 zugehörig sind. Bei einer Ausführungsform identifiziert das Aktualisierungsanalyseprogramm 101 die Firmware-Versionen und Hardware-Versionen, um zu ermitteln, ob ein Server-Computer 145 eine Firmware-Aktualisierung benötigt. Bei einer Ausführungsform werden die Firmware-Versionen, die eine Aktualisierung benötigen, auf Grundlage einer Benutzeraufforderung oder vorgegebener ungültiger Konfigurationen ermittelt. Wenn eine Firmware-Version nicht gepatcht werden kann, werden diese Firmware-Versionen bei einer Ausführungsform als Ausnahmen in dem Systemkonfigurationsprofil 155 gespeichert. Bei einer Ausführungsform werden die Hardware-Versionen, die eine Aktualisierung benötigen, auf Grundlage einer Benutzeraufforderung, vorgegebener ungültiger Konfigurationen oder nicht unterstützter Hardware ermittelt. Wenn eine Hardware-Version nicht gepatcht werden kann, werden diese Hardware-Versionen bei einer Ausführungsform als Ausnahmen in dem Systemkonfigurationsprofil 155 gespeichert. Bei einer Ausführungsform ist der Arbeitslast-/Ereignisplan 150 in dem Systemkonfigurationsprofil 155 enthalten.
-
Bei einer Ausführungsform enthält das Systemkonfigurationsprofil 155 Regeln für einen bestimmten Server-Computer 145. Regeln für den Server-Computer 145 können die Versionen der Firmware oder Hardware, die das Aktualisierungsanalyseprogramm 101 aktualisieren sollte oder nicht aktualisieren sollte, sowie die bestimmten Firmware- oder Hardware-Versionen enthalten, für die eine Aktualisierung zulässig ist oder nicht zulässig ist. Regeln für den Server-Computer 145 können durch die Firmware- oder Hardware-Anforderungen ermittelt werden, die spezifisch für einen bestimmten Server-Computer 145 sind.
-
Bei einer Ausführungsform hat der Server-Computer 145 mehrere Firmware-Versionen. Bei einer Ausführungsform betreiben, verwalten und steuern die Firmware-Versionen den Server-Computer 145. Zum Beispiel enthält der Server-Computer 145 eine installierte Version, eine aktivierte Version und eine zulässige Version. Im Allgemeinen ist eine installierte Version einer Server-Firmware installiert und wird in einem Arbeitsspeicher installiert, nachdem das verwaltete System ausgeschaltet und eingeschaltet wird. Eine aktivierte Version ist die Version der Server-Firmware oder die Firmware des Spannungsversorgungs-Teilsystems, die aktiv ist und im Arbeitsspeicher ausgeführt wird. Eine zulässige Version ist die Backup-Version einer Firmware des Servers oder Spannungsversorgungs-Teilsystems. Typischerweise ist eine zulässige Firmware-Version die Version, die der Server verwendet, um die installierte Version zu entfernen. Bei einer Ausführungsform enthalten die System-Firmware-Versionen 160 Informationen zu einer oder mehreren der installierten Versionen, aktivierten Versionen oder zulässigen Versionen.
-
Bei einer Ausführungsform enthalten die System-Hardware-Versionen 165 Hardware-Komponenten mit einer niedrigen oder hohen Version. Im Allgemeinen steuert die Hardware-Version eines Betriebssystems die Verwendung von physischen Systemressourcen, zum Beispiel des Arbeitsspeicherverwalters, des Prozessverwalters und der Plattentreiber. Hardware-Versionen sollten nicht aktualisiert werden, wenn dies durch eine Benutzeraufforderung, eine vorgegebene ungültige Konfiguration oder eine nicht unterstützte Hardware angegeben wird.
-
Bei verschiedenen Ausführungsformen der vorliegenden Erfindung verwaltet das Aktualisierungsanalyseprogramm 101 Software-Aktualisierungen oder -Patches für einen spezifischen Server-Computer in einer Rechenzentrumsumgebung. Bei einer Ausführungsform ermittelt das Aktualisierungsanalyseprogramm 101, dass eine Server-Aktualisierung benötigt wird. Bei einer Ausführungsform erzeugt das Aktualisierungsanalyseprogramm 101 eine Konfigurationsdatei, wie dies in Bezug auf 3 weiter unten ausführlicher beschrieben wird. Bei einer Ausführungsform verwendet das Aktualisierungsanalyseprogramm 101 den Firmware-Aktualisierungsanalysator 600, um eine optimale Zeit zum Planen einer Server-Aktualisierung zu ermitteln. Das Aktualisierungsanalyseprogramm 101 verwendet den Firmware-Aktualisierungsplaner 140, um den Plan 110 und den Server-Computer-Arbeitslast-/-Ereignisplan 150 auf Grundlage des Server-Computer-Konfigurationsprofils 155 zu aktualisieren. Bei einer Ausführungsform plant das Aktualisierungsanalyseprogramm 101 eine optimale Server-Aktualisierungszeit in dem Plan 110.
-
Bei einer Ausführungsform identifiziert der Administrator-Server-Computer 105 geplante Ereignisse mit der Systemarbeitslast, um optimale Zeiten zum Durchführen einer Firmware-Aktualisierung oder eines Firmware-Patches zu ermitteln und dadurch eine Maschinenausfallzeit zu verringern. Bei einer Ausführungsform aktualisiert der Administrator-Server-Computer 105 verschiedene der Server-Computer 145 auf Grundlage der Verfügbarkeit eines oder mehrerer der Server-Computer 145, der Firmware-Teildatenstrom-Aktualisierungsanforderungen oder der Systemverwendung. Bei einer Ausführungsform enthält der Firmware-Teildatenstrom LPAR, OSA, CFCC (Coupling), Power und HMC/SE. Bei einer Ausführungsform aktualisiert der Administrator-Server-Computer 105 verschiedene der Server-Computer 145 auf Grundlage der Server-Computer-Verfügbarkeit und der Hardware-Versionen. Wenn ein Server-Computer 145 zum Beispiel eine Firmware-Aktualisierung nicht unterstützt, kann der Server-Computer 145 spezifische Aktualisierungen verwenden, die nicht auf diese veraltete Hardware abzielen.
-
Bei einer Ausführungsform ermittelt das Aktualisierungsanalyseprogramm 101 mehrere optimale Zeiten für eine Server-Aktualisierung. Bei diesen Ausführungsformen weist das Aktualisierungsanalyseprogramm 101 jeder verfügbaren Zeit eine Wertung zu. Bei einer Ausführungsform führt das Aktualisierungsanalyseprogramm 101 auf Grundlage eines vorherigen Lernens aus früheren Aktualisierungsversuchen zu der geplanten optimalen Zeit automatisch eine Aktualisierung auf den Servern durch.
-
Bei einer Ausführungsform ermittelt das Aktualisierungsanalyseprogramm 101, dass es keine Überlappung zwischen dem Arbeitslast-/Ereignisplan 150 und dem Plan 110 gibt. Zum Beispiel ermittelt das Aktualisierungsanalyseprogramm 101, dass es keine Überlappung zwischen dem Arbeitslast-/Ereignisplan 150 und dem Plan 110 gibt, wenn einer der beiden Pläne angibt, dass es zu dieser Zeit ein Kalender-Ereignis gibt. Wenn der Arbeitslast-/Ereignisplan 150 also angibt, dass es am 4. Januar 2020 von 15:00 Uhr bis 16:00 Uhr ein Ereignis gibt, ermittelt das Aktualisierungsanalyseprogramm 101, dass es am 4. Januar 2020 von 15:00 Uhr bis 16:00 Uhr keine Überlappung zwischen den beiden Plänen gibt. Wenn jedoch beide Pläne angeben, dass am 4. Januar von 15:00 Uhr bis 16:00 Uhr keine Kalender-Ereignisse geplant sind, gibt das Aktualisierungsanalyseprogramm 101 an, dass es eine Überlappung zwischen dem Arbeitslast-/Ereignisplan 150 und dem Plan 110 gibt. Wenn anfänglich keine überlappende Zeit angegeben wird, erhöht das Aktualisierungsanalyseprogramm 101 die Dauer der Überlappungszeit. Wenn das Aktualisierungsanalyseprogramm 101 zum Beispiel ermittelt, dass es am 4. Januar keine verfügbaren überlappenden Zeiten gibt, erhöht das Analyseprogramm 101 die Überlappungszeit auf zwei Tage, um zu ermitteln, ob es am 4. Januar und am 5. Januar überlappende verfügbare Zeiten gibt.
-
2 ist eine allgemein als 200 bezeichnete Ablaufplandarstellung, die Arbeitsschritte zum Erzeugen einer Konfigurationsdatei gemäß mindestens einer Ausführungsform der vorliegenden Erfindung darstellt. 2 stellt lediglich eine Veranschaulichung einer Ausführung bereit und impliziert keinerlei Beschränkungen mit Blick auf die Umgebungen, in denen verschiedene Ausführungsformen realisiert werden können. Der Fachmann kann viele Abwandlungen an der dargestellten Umgebung vornehmen, ohne von dem durch die Ansprüche geltend gemachten inhaltlichen Umfang der Erfindung abzuweichen.
-
In einem Schritt S202 identifiziert das Aktualisierungsanalyseprogramm 101 Server-Computer-Firmware-Versionen. Zum Beispiel identifiziert das Aktualisierungsanalyseprogramm 101 die eingebetteten Software-Anweisungen des Server-Computers, um die Server-Computer-Firmware-Versionen zu identifizieren. Bei einer Ausführungsform werden die identifizierten Firmware-Versionen in einer Konfigurationsdatei wie z.B. der Systemkonfigurationsdatei 155 gespeichert. Bei einer Ausführungsform werden die Firmware-Versionen aus spezifischen Firmware-Konfigurationsdateien und Betriebssystem-Konfigurationsschemata auf dem Server-Computer 145 automatisch abgefragt. Bei einer Ausführungsform werden die Firmware-Versionen des Server-Computers 145 durch einen Benutzer mit Administratorrechten manuell in das Systemkonfigurationsprofil 155 eingegeben.
-
In einem Schritt S204 identifiziert das Aktualisierungsanalyseprogramm 101 die Server-Computer-Hardware-Versionen. Zum Beispiel identifiziert das Aktualisierungsanalyseprogramm 101 die eingebetteten Software-Anweisungen des Server-Computers, um die Server-Computer-Hardware-Versionen zu ermitteln. Bei einer Ausführungsform werden die identifizierten Hardware-Versionen in einer Konfigurationsdatei wie z.B. der Systemkonfigurationsdatei 155 gespeichert. Bei einer Ausführungsform werden die Hardware-Versionen aus spezifischen Hardware-Konfigurationsdateien und Betriebssystem-Konfigurationsschemata auf dem Server-Computer 145 automatisch abgefragt. Bei einer Ausführungsform werden die Hardware-Versionen des Server-Computers 145 durch einen Benutzer mit Administratorrechten manuell in das Systemkonfigurationsprofil 155 eingegeben.
-
In einem Entscheidungsschritt S206 ermittelt das Aktualisierungsanalyseprogramm 101, ob es Firmware-Versionen gibt, die keine Aktualisierung benötigen. Bei einer Ausführungsform ermittelt das Aktualisierungsanalyseprogramm 101 auf Grundlage eines oder mehrerer aus einer Benutzeraufforderung, vorgegebenen ungültigen Konfigurationen und nicht unterstützter Firmware, ohne jedoch darauf beschränkt zu sein, dass eine bestimmte Firmware-Version für einen bestimmten Server-Computer 145 nicht aktualisiert werden sollte. So kann zum Beispiel ermittelt werden, dass eine Firmware-Aktualisierung nicht benötigt wird, wenn die momentanen Firmware-Versionen die neue Aktualisierung nicht unterstützen. Zum Beispiel kann es erforderlich sein, dass Firmware-Versionen in einer Server-Testumgebung unverändert bleiben, um eine spezifische Client-Operation zu simulieren und ein spezifisches Problem unter Umständen zu reproduzieren. Wenn zum Beispiel bei einem Client zuvor ein Problem mit dessen Firmware aufgetreten ist, sollten Firmware-Versionen unverändert bleiben, um das zuvor aufgetretene Problem zu reproduzieren. Wenn ermittelt wird, dass es Firmware-Versionen gibt, die eine Aktualisierung benötigen (Entscheidungsschritt S206, Verzweigung „JA“), fährt das Aktualisierungsanalyseprogramm 101 mit einem Schritt S208 fort. Wenn ermittelt wird, dass es keine Firmware-Versionen gibt, die eine Aktualisierung benötigen (Entscheidungsschritt S206, Verzweigung „NEIN“), fährt das Aktualisierungsanalyseprogramm 101 mit einem Entscheidungsschritt S210 fort.
-
In dem Schritt S208 speichert das Aktualisierungsanalyseprogramm 101 Informationen in der Konfigurationsdatei, welche bestimmten Firmware-Versionen für einen Server-Computer eine Aktualisierung benötigen und welche bestimmten Firmware-Versionen für einen Server-Computer keine Aktualisierung benötigen und/oder nicht aktualisiert werden sollten.
-
In dem Entscheidungsschritt S210 ermittelt das Aktualisierungsanalyseprogramm 101, ob es Hardware-Versionen gibt, die keine Aktualisierung benötigen. Bei einer Ausführungsform kann das Aktualisierungsanalyseprogramm 101 auf Grundlage eines oder mehrerer aus einer Benutzeraufforderung, vorgegebenen ungültigen Konfigurationen und nicht unterstützter Hardware, ohne jedoch darauf beschränkt zu sein, ermitteln, dass eine bestimmte Version eines Hardware-Elements für einen bestimmten Server-Computer 145 nicht aktualisiert werden sollte. Zum Beispiel können vorgegebene ungültige Hardware-Konfigurationen die Systemressourcen-Einstellungen enthalten, die einer spezifischen Einheit zugewiesen werden. Bei einer Ausführungsform kann nicht unterstützte Hardware bedeuten, dass die physische Hardware innerhalb des Systems die Aktualisierung nicht unterstützen kann. Wenn künftige nicht freigegebene Prototyp-Versionen von Hardware in dem Server-Computer 145 getestet werden, kann bei einer Ausführungsform verhindert werden, dass die spezifische Prototyp-Hardware mit momentanen freigegebenen Firmware-Versionen aktualisiert wird, um einen Fehler der Hardware zu vermeiden. Wenn ermittelt wird, dass es Hardware-Versionen gibt, die eine Aktualisierung benötigen (Entscheidungsschritt S210, Verzweigung „JA“), fährt das Aktualisierungsanalyseprogramm 101 mit einem Schritt S212 fort. Wenn ermittelt wird, dass es keine Hardware-Versionen gibt, die eine Aktualisierung benötigen (Entscheidungsschritt S210, Verzweigung „NEIN“), fährt das Aktualisierungsanalyseprogramm 101 mit einem Schritt S214 fort.
-
In dem Schritt S212 speichert das Aktualisierungsanalyseprogramm 101 Informationen in der Konfigurationsdatei, welche bestimmten Hardware-Versionen für einen Server-Computer eine Aktualisierung benötigen und welche bestimmten Hardware-Versionen für einen Server-Computer keine Aktualisierung benötigen und/oder nicht aktualisiert werden sollten.
-
In dem Schritt S214 ruft das Aktualisierungsanalyseprogramm 101 den Server-Computer-Arbeitslast-/-Ereignisplan 150 ab und speichert ihn in der Systemkonfigurationsdatei 155.
-
In einem Schritt S216 erzeugt das Aktualisierungsanalyseprogramm 101 eine Konfigurationsdatei.
-
3 ist eine allgemein als 300 bezeichnete Ablaufplandarstellung, die Arbeitsschritte zum Planen einer Firmware-Aktualisierung gemäß mindestens einer Ausführungsform der vorliegenden Erfindung darstellt. 3 stellt lediglich eine Veranschaulichung einer Ausführung bereit und impliziert keinerlei Beschränkungen mit Blick auf die Umgebungen, in denen verschiedene Ausführungsformen realisiert werden können. Der Fachmann kann viele Abwandlungen an der dargestellten Umgebung vornehmen, ohne von dem durch die Ansprüche geltend gemachten inhaltlichen Umfang der Erfindung abzuweichen.
-
In einem Entscheidungsschritt S302 ermittelt das Aktualisierungsanalyseprogramm 101, ob für einen Server-Computer wie z.B. den Server-Computer 145 eine Aktualisierung verfügbar ist. Wenn ermittelt wird, dass keine Aktualisierung verfügbar ist (Entscheidungsschritt S302, Verzweigung „NEIN“), kehrt das Aktualisierungsanalyseprogramm 101 zum Beginn der Arbeitsschritte zurück. Wenn ermittelt wird, dass eine Aktualisierung verfügbar ist (Entscheidungsschritt S302, Verzweigung „JA“), fährt das Aktualisierungsanalyseprogramm 101 mit einem Entscheidungsschritt S304 fort.
-
In dem Entscheidungsschritt S304 ermittelt das Aktualisierungsanalyseprogramm 101, ob es einen Server-Computer gibt, der eine Aktualisierung benötigt. Bei einer Ausführungsform ermittelt das Aktualisierungsanalyseprogramm 101 auf Grundlage, ohne darauf beschränkt zu sein, eines oder mehrerer aus einer Benutzeraufforderung, vorgegebenen ungültigen Konfigurationen und nicht unterstützter Firmware, ob ein Server-Computer eine Aktualisierung benötigt. Bei einer Ausführungsform vergleicht das Aktualisierungsanalyseprogramm 101 die momentanen Firmware-Versionen eines jeden Server-Computers mit der neuesten Aktualisierung, um zu ermitteln, ob ein Server-Computer eine veraltete Version ausführt. Wenn ermittelt wird, dass es keinen Server-Computer gibt, der eine Aktualisierung benötigt (Entscheidungsschritt S304, Verzweigung „NEIN“), kehrt das Aktualisierungsanalyseprogramm 101 zum Beginn der Arbeitsschritte zurück. Wenn ermittelt wird, dass es einen Server-Computer gibt, der eine Aktualisierung benötigt (Entscheidungsschritt S304, Verzweigung „JA“), fährt das Aktualisierungsanalyseprogramm 101 mit einem Schritt S306 fort.
-
In dem Schritt S306 lädt das Aktualisierungsanalyseprogramm 101 ein Systemkonfigurationsprofil, das dem Server-Computer zugehörig ist. Zum Beispiel lädt das Aktualisierungsanalyseprogramm 101 das Systemkonfigurationsprofil 155, das weiter oben gemäß 2 für einen bestimmten Server-Computer 145 erzeugt wird.
-
In einem Schritt S308 ermittelt das Aktualisierungsanalyseprogramm 101, ob es in einem festgelegten Zeitraum eine Überlappung von Plänen gibt. Bei einer Ausführungsform vergleicht das Aktualisierungsanalyseprogramm 101 den Server-Computer-Administratorplan 110 mit dem Server-Computer-Arbeitslast-/-Ereignisplan 150, um überlappende verfügbare Zeiten zum Durchführen einer Aktualisierung innerhalb eines vorgegebenen Zeitraums zu ermitteln. Wenn ermittelt wird, dass es in dem festgelegten Zeitraum keine Überlappung von Plänen gibt (Entscheidungsschritt S310, Verzweigung „NEIN“), fährt das Aktualisierungsanalyseprogramm 101 mit einem Schritt S312 fort. Wenn ermittelt wird, dass es in dem festgelegten Zeitraum eine Überlappung von Plänen gibt (Entscheidungsschritt S310, Verzweigung „NEIN“), fährt das Aktualisierungsanalyseprogramm 101 mit einem Schritt S314 fort.
-
In dem Schritt S312 erhöht das Aktualisierungsanalyseprogramm 101 den vorgegebenen Zeitraum zum Durchführen der Aktualisierung. Bei einer Ausführungsform kann das Aktualisierungsanalyseprogramm 101 die Zeitdauer in dem Zeitraum erhöhen. Wenn das Aktualisierungsanalyseprogramm 101 zum Beispiel nicht ausreichend lange, aufeinanderfolgende Zeitspannen erkennt, um die Aktualisierung sowohl für den Server-Computer 145 als auch für den Server-Computer-Administrator 105 durchzuführen, wird die akzeptable Zeitspanne, in der die Aktualisierung durchgeführt werden kann, erhöht, um zu ermitteln, ob es in einer weiteren künftigen Zeitspanne eine Überlappung zwischen den Einheiten gibt. Wenn ermittelt wird, dass die künftige Zeitspanne, in der eine Aktualisierung durchgeführt werden soll, erhöht wird und keine akzeptable überlappende Zeitspanne zum Durchführen der Aktualisierung gefunden wird, kann das Aktualisierungsanalyseprogramm 101 eine erzwungene Aktualisierung des Server-Computers 145 durchführen.
-
In dem Schritt S314 plant das Aktualisierungsanalyseprogramm 101 eine Firmware-Aktualisierung. Bei einer Ausführungsform plant das Aktualisierungsanalyseprogramm 101 die Aktualisierung für einen oder mehrere der Server-Computer 145 auf Grundlage eines Vergleichens des Administratorplans 110 und der betreffenden Server-Computer-Arbeitslast-/-Ereignispläne 150 für den einen oder die mehreren Server-Computer 145, welche die Aktualisierung benötigen. Bei einer Ausführungsform plant das Aktualisierungsanalyseprogramm 101 die Aktualisierung für einen oder mehrere der Server-Computer 145 auf Grundlage eines Vergleichens des Administratorplans 110 und der betreffenden Server-Computer-Arbeitslast-/-Ereignispläne aller Server-Computer 145, um eine Firmware-Planungszeit für einen oder mehrere der Server-Computer 145 zu ermitteln, welche die Aktualisierung benötigen. Obwohl womöglich nur ein einziger der Server-Computer 145 eine Aktualisierung benötigt, sind andere Server-Computer 145 eventuell von dem bestimmten Server-Computer 145 abhängig, der die Aktualisierung benötigt. Entsprechend wird eine überlappende Zeit zum Durchführen der Aktualisierung auf Grundlage des Administratorplans 110 des Administrator-Server-Computers 105, des bestimmten Server-Computers 145, der die Aktualisierung benötigt, und eines oder mehrerer zusätzlicher Server-Computer 145 ermittelt, die von dem bestimmten Server-Computer 145 abhängig sein können, der die Aktualisierung benötigt, um eine Zeit zu finden, welche die Auswirkung eines Aktualisierens eines Server-Computers auf diese anderen abhängigen Server-Computer minimiert. Bei einer Ausführungsform werden mit dem Aktualisierungsanalyseprogramm 101 einer oder mehrere der Server-Computer 145 gleichzeitig aktualisiert. Dabei sollte klar sein, dass die Schritte aus 3 wiederholt werden können, um zu ermitteln, ob zusätzliche Server-Computer 145 die verfügbare Aktualisierung benötigen.
-
4 ist ein funktionales Blockschaubild eines allgemein als 400 bezeichneten Datenverarbeitungssystems zum Planen einer optimalen Zeit für eine Software-Aktualisierung gemäß mindestens einer Ausführungsform der vorliegenden Erfindung.
-
4 stellt eine Veranschaulichung von lediglich einer einzigen Realisierung bereit und impliziert keinerlei Beschränkungen mit Blick auf die Umgebungen, in denen verschiedene Ausführungsformen realisiert werden können. Der Fachmann kann viele Abwandlungen an der dargestellten Umgebung vornehmen, ohne von dem durch die Ansprüche geltend gemachten inhaltlichen Umfang der Erfindung abzuweichen.
-
Eine Benutzereinheit 401 kann für eine Datenverarbeitungseinheit eines Benutzers stehen, z.B. einen Laptop Computer, einen Tablet Computer, einen Netbook Computer, einen Personal Computer, einen Desktop Computer, einen persönlichen digitalen Assistenten (PDA), ein Smartphone, am Körper tragbare Einheiten (z.B. smarte Brillen, smarte Uhren, eTextilien, Augmented-Reality(AR)-Headsets usw.) oder beliebige andere programmierbare Computersysteme, die nach dem Stand der Technik bekannt sind. Die Einheit 401 kann für eine oder mehrere Einheiten stehen. Im Allgemeinen steht die Einheit 401 für jede elektronische Einheit oder Kombination von elektronischen Einheiten, die in der Lage ist, computerlesbare Anweisungen auszuführen.
-
Das Datenverarbeitungssystem 400 enthält die Benutzereinheit 401 und den Server 135, die über ein Netzwerk 430 miteinander verbunden werden. Die Benutzereinheit 401 enthält eine Benutzerschnittstelle 403 und eine Anwendung 404. Die Benutzerschnittstelle 403 ist ein Programm, das eine Schnittstelle zwischen einem Benutzer einer Endbenutzereinheit wie z.B. der Benutzereinheit 401 und einer Mehrzahl von Anwendungen bereitstellt, die sich auf der Einheit befinden (z.B. die Anwendung 404). Eine Benutzerschnittstelle wie z.B. die Benutzerschnittstelle 403 bezieht sich auf Informationen (z.B. Grafik, Text und Klang), die ein Programm einem Benutzer präsentiert, sowie auf die Steuersequenzen, die der Benutzer verwendet, um das Programm zu steuern. Es gibt eine Vielfalt von Arten von Benutzerschnittstellen. Bei einer Ausführungsform ist die Benutzerschnittstelle 403 eine graphische Benutzerschnittstelle (Graphical User Interface, GUI). Eine grafische Benutzerschnittstelle ist eine Art von Benutzerschnittstelle, die Benutzern ermöglicht, mit elektronischen Einheiten wie z.B. einer Computer-Tastatur und - Maus über grafische Symbole und visuelle Indikatoren wie z.B. eine Sekundärnotation zu interagieren, im Gegensatz zu auf Text beruhenden Schnittstellen, eingetippten Befehlsbezeichnungen oder Textnavigation. In der Datenverarbeitung wurden GUIs als Reaktion auf die als steil empfundene Lernkurve von Befehlszeilenschnittstellen eingeführt, bei denen Befehle auf der Tastatur eingetippt werden müssen. Die Aktionen in GUIs werden häufig durch eine direkte Manipulation der grafischen Elemente durchgeführt. Bei einer weiteren Ausführungsform ist die Benutzerschnittstelle 403 ein Skript oder eine Anwendungsprogrammierschnittstelle (Application Programming Interface, API).
-
Die Anwendung 404 kann für eine oder mehrere Anwendungen (z.B. eine Anwendungssuite) stehen, die auf der Benutzereinheit 401 ausgeführt werden. Bei verschiedenen Beispiel-Ausführungsformen kann die Anwendung 404 eine Anwendung sein, die sich auf einer Benutzereinheit befindet. Bei anderen Ausführungsformen kann die Anwendung 404 eine weitere Anwendung einer mobilen Einheit sein (z.B. ein Web-Browser, eine unternehmensspezifische Nachrichtenanwendung, eine Social-Media-Anwendung, eine Anwendung zum Aktualisieren der Software-, Firmware- und/oder Hardware-Versionen einer Einheit usw.). Zum Beispiel ist die Anwendung 404 eine Client-seitige Anwendung, die einem Server 435 zugehörig ist (z.B. eine Client-seitige Anwendung, die dem Aktualisierungsanalyseprogramm 101 zugehörig ist).
-
Bei einer zusätzlichen Ausführungsform kann die Anwendung 404 ausgeführt werden, um gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung Verarbeitungsschritte des Aktualisierungsanalyseprogramms 102 durchzuführen (d.h. die Anwendung 404 kann für das Aktualisierungsanalyseprogramm 102 stehen, das auf der Benutzereinheit 401 ausgeführt wird). Zum Beispiel kann ein Benutzer der Benutzereinheit 401 unter Verwendung der Anwendung 404 Aktualisierungserinnerungen empfangen, Software-, Firmware- und/oder Hardware-Aktualisierungen anzeigen lassen, die für eine Einheit eines Benutzers geplant sind, bestimmte Aktualisierungen auswählen und geplante Aktualisierungen zulassen, ablehnen und annullieren.
-
Die Benutzereinheiten 401 enthalten des Weiteren ein Aktualisierungsbenachrichtigungssystem 405, einen Plan 410, einen Einheitenstatus 415, Standortdienste 420 und eine Einheitenrolle 425. Bei einer Ausführungsform ist das Aktualisierungsbenachrichtigungssystem 405 eine Komponente oder ein Teilprogramm des Aktualisierungsanalyseprogramms 102, die bzw. das verwendet wird, um die Benutzereinheit 401 darauf aufmerksam zu machen, dass eine Aktualisierung verfügbar ist. Bei manchen Ausführungsformen kann der Hinweis durch das Aktualisierungsbenachrichtigungssystem 405 ein Popup-Fenster oder eine Dropdown-Liste sein. Bei einer Ausführungsform enthält der Plan 410 des Weiteren eine historische Bildschirmverwendung der Benutzereinheiten 401. Wenn eine Benutzereinheit zum Beispiel üblicherweise jeden Mittwoch von 14:00 Uhr bis 17:00 Uhr in Verwendung ist, speichert das Aktualisierungsanalyseprogramm 102 die Informationen in dem Plan 410. Bei einer Ausführungsform enthält der Plan 410 den historischen Ladestand der Benutzereinheit 401. Für den Fachmann dürfte offensichtlich sein, dass der Plan 410 den Plan (Kalender) des Benutzers für eine oder mehrere der Benutzereinheiten 401 enthalten kann.
-
Bei einer Ausführungsform enthält der Einheitenstatus 415 verschiedene Leistungsbedingungen einer Benutzereinheit, z.B. den Ladestand und den WLAN-Status der Einheit. Bei einer Ausführungsform gibt der Ladezustand an, wie hoch die Akkuladung einer Einheit in Prozent ist. Bei einer Ausführungsform gibt der Ladestand an, ob eine Einheit momentan geladen wird. Bei einer Ausführungsform gibt der Akkuladestand an, ob die Akkuladung über einem vorgegebenen Schwellenwert liegt, der notwendig ist, um eine bestimmte Aktualisierung durchzuführen. Bei einer Ausführungsform enthält der Einheitenstatus 415 die historische Verwendung der Einheit und die historischen Ladezeiten der Einheit. Bei einer Ausführungsform kann der WLAN-Status anhand der Stärke der WLAN-Verbindung der Benutzereinheit 401 mit einem WLAN kategorisiert werden. Bei einer Ausführungsform enthalten die Standortdienste 420 verschiedene Standortinformationen für die momentanen und künftigen Standorte einer Benutzereinheit. Bei einer Ausführungsform enthält die Einheitenrolle 425 verschiedene Informationen zu einer bestimmten Benutzereinheit, z.B., ob die Einheit eine Administratoreinheit oder eine Kindeinheit ist.
-
Der Server 435 enthält ein Aktualisierungsanalyseprogramm 102, das des Weiteren einen Einheiten-Firmware-Aktualisierungsanalysator 300, einen Firmware-Planer 440 und einen Einheitenprofil-Lerner 450 enthält. Bei einer Ausführungsform ist das Programm 102 ein Teilprogramm des Programms 101. Bei einer Ausführungsform ist das Programm 102 verschieden oder getrennt von dem Programm 101. Bei einer Ausführungsform ist der Einheiten-Firmware-Aktualisierungsanalysator 300 ein Modul oder Teilprogramm des Aktualisierungsanalyseprogramms 102, das verwendet wird, um Firmware-Aktualisierungen zu analysieren. Bei einer Ausführungsform kombiniert der Einheiten-Firmware-Aktualisierungsanalysator 300 den Administratorplan mit der Verfügbarkeit des Servers mit den (weiter unten in Bezug auf 5 ausführlicher beschriebenen) Verfügbarkeitsinformationen einer oder mehrerer der Benutzereinheiten 401, um zu ermitteln, ob eine bestimmte Benutzereinheit 401 eine Aktualisierung benötigt, und wenn eine Aktualisierung benötigt wird, ob die Aktualisierung zulässig ist.
-
Bei einer Ausführungsform ist der Firmware-Planer 440 ein Modul oder Teilprogramm des Aktualisierungsanalyseprogramms 102, das verwendet wird, um Aktualisierungen auf einer Benutzereinheit zu planen. Bei einer Ausführungsform plant und speichert der Firmware-Planer 440 Firmware-Aktualisierungserinnerungen in dem Plan 410. Bei einer Ausführungsform plant und speichert der Firmware-Planer 440 Firmware-Aktualisierungserinnerungen innerhalb des Plans 410 der Benutzereinheit 401.
-
Bei einer Ausführungsform ist der Einheitenprofil-Lerner 450 ein Modul oder Teilprogramm des Aktualisierungsanalyseprogramms 102, das die Firmware- oder Hardware-Versionen der Benutzereinheit 401 zum Durchführen von Aktualisierungen ermittelt. Bei einer Ausführungsform ermittelt der Einheitenprofil-Lerner 450 die verfügbaren Zeiten der Benutzereinheit 401. Weitere Ausführungsformen des Einheitenprofil-Lerners werden weiter unten in Bezug auf 6 ausführlicher beschrieben.
-
Bei einer Ausführungsform kann die Benutzereinheit 401 eine Software-Aktualisierung, Firmware-Aktualisierung und/oder Hardware-Aktualisierung benötigen. Bei einer Ausführungsform analysiert das Aktualisierungsanalyseprogramm 102 den Plan 410, den Einheitenstatus 415, die Standortdienste 420 und die Einheitenrolle 425, um eine optimale Zeit zum Aktualisieren einer Software auf der Benutzereinheit 401 zu ermittelt. Bei einer Ausführungsform ermittelt das Aktualisierungsanalyseprogramm 102 eine optimale Zeit zum Aktualisieren der Software auf Grundlage einer Mehrzahl von Faktoren, z.B., ohne jedoch darauf beschränkt zu sein, eines oder mehrere aus: einem Plan des Einheitenbenutzers, einer Verwendungshistorie der Einheit, einer Bildschirmzeithistorie der Einheit, einem momentanen Standort der Einheit, einem künftigen Standort der Einheit, einer Ladehistorie der Einheit, einem momentanen Ladestand der Einheit, einer WLAN-Verbindungshistorie der Einheit und einer momentanen WLAN-Verbindung der Einheit. Bei einer Ausführungsform ermittelt das Aktualisierungsanalyseprogramm 102 eine Zeit, um die Software-Aktualisierung dann durchzuführen, wenn es wahrscheinlich ist, dass die Einheit nicht in Verwendung sein wird, dass sie einen ausreichenden Ladestand und eine ausreichende WLAN-Verbindung haben wird. Bei einer Ausführungsform plant das Aktualisierungsanalyseprogramm 102 das Datum und die Uhrzeit einer solchen Aktualisierung in dem Plan 410, sobald eine solche optimale Zeit ermittelt wird.
-
Bei einer Ausführungsform benötigt ein Benutzer unter Umständen Unterstützung beim Aktualisieren der Software, Firmware und/oder Hardware auf seiner bzw. ihrer Einheit. Entsprechend kann das Aktualisierungsanalyseprogramm 102 ermitteln, ob die Einheit, welche die Aktualisierung benötigt, eine Administratoreinheit oder eine Kindeinheit ist. Bei einer Ausführungsform plant die Aktualisierungsanalyseeinheit 102 eine Software-Aktualisierung für eine Kindeinheit, wenn sowohl die Administratoreinheit als auch die Kindeinheit verfügbar ist. Bei einer Ausführungsform verknüpft das Aktualisierungsanalyseprogramm 102 eine Administratoreinheit mit einer oder mehreren Kindeinheiten. Bei einer Ausführungsform benachrichtigt das Aktualisierungsanalyseprogramm 102 eine Administratoreinheit über verfügbare Aktualisierungszeiten für eine oder mehrere Kindeinheiten. Bei einer Ausführungsform aktualisiert das Aktualisierungsanalyseprogramm 102 eine Familie von mobilen Einheiten.
-
Bei einer Ausführungsform ermittelt das Aktualisierungsanalyseprogramm 102 mehrere optimale Zeiten für eine Benutzereinheitenaktualisierung. Hierbei kann das Aktualisierungsanalyseprogramm 102 jeder verfügbaren Zeit eine Wertung zuweisen. Bei einer Ausführungsform führt das Aktualisierungsanalyseprogramm 102 auf Grundlage eines vorherigen Lernens aus früheren Aktualisierungsversuchen und/oder früheren Zeiten einer durchgeführten Aktualisierung automatisch eine Aktualisierung einer oder mehrerer Benutzereinheiten zu der geplanten optimalen Zeit durch.
-
Bei einer Ausführungsform ermittelt das Aktualisierungsanalyseprogramm 102, dass es keine überlappende verfügbare Zeit zwischen dem Kindplan und dem Administratorplan gibt. Bei einer Ausführungsform ist der Kindplan der Plan der Benutzereinheit, welche die Aktualisierung benötigt, und der Administratorplan ist der Plan der Benutzereinheit, die Unterstützung bei der Aktualisierung bereitstellt. Zum Beispiel kann das Aktualisierungsanalyseprogramm 102 ermitteln, dass es keine Überlappung zwischen dem Kindplan und dem Administratorplan gibt, wenn einer der beiden Pläne angibt, dass es zu dieser Zeit ein Kalender-Ereignis gibt. Wenn anfänglich keine überlappende Zeit angegeben wird, erhöht das Aktualisierungsanalyseprogramm 102 die Dauer der Überlappungszeit. Wenn das Aktualisierungsanalyseprogramm 102 zum Beispiel ermittelt, dass es am 4. Januar keine verfügbaren überlappenden Zeiten gibt, erhöht das Analyseprogramm 102 die Überlappungszeit auf zwei Tage, um zu ermitteln, ob es am 4. Januar und am 5. Januar überlappende verfügbare Zeiten gibt.
-
5 ist eine Ablaufplandarstellung, die Arbeitsschritte zum Erzeugen von Kalenderoptionen für eine allgemein als 500 bezeichnete Kindeinheit gemäß mindestens einer Ausführungsform der vorliegenden Erfindung darstellt. 5 stellt lediglich eine Veranschaulichung einer Ausführung bereit und impliziert keinerlei Beschränkungen mit Blick auf die Umgebungen, in denen verschiedene Ausführungsformen realisiert werden können. Der Fachmann kann viele Abwandlungen an der dargestellten Umgebung vornehmen, ohne von dem durch die Ansprüche geltend gemachten inhaltlichen Umfang der Erfindung abzuweichen.
-
In einem Entscheidungsschritt S502 ermittelt das Aktualisierungsanalyseprogramm 102, ob eine Aktualisierung verfügbar ist. Wenn ermittelt wird, dass keine Aktualisierung verfügbar ist (Entscheidungsschritt S502, Verzweigung „NEIN“), kehrt das Aktualisierungsanalyseprogramm 101 zu dem Schritt S502 zurück. Wenn ermittelt wird, dass eine Aktualisierung verfügbar ist (Entscheidungsschritt S502, Verzweigung „JA“), fährt das Aktualisierungsanalyseprogramm 102 mit einem Entscheidungsschritt S504 fort.
-
In dem Entscheidungsschritt S504 ermittelt das Aktualisierungsanalyseprogramm 102, ob eine Benutzereinheit eine verfügbare Aktualisierung (z.B. eine Software-/Firmware- und/oder Hardware-Aktualisierung) benötigt. Bei einer Ausführungsform ermittelt das Aktualisierungsanalyseprogramm 102, dass eine Benutzereinheit keine Aktualisierung benötigt, wenn die Hardware oder Firmware der Einheit die verfügbare Aktualisierung nicht unterstützen kann. Wenn ermittelt wird, dass keine Aktualisierung verfügbar ist (Entscheidungsschritt S504, Verzweigung „NEIN“), kehrt das Aktualisierungsanalyseprogramm 102 zu dem Schritt S504 zurück. Wenn ermittelt wird, dass eine Aktualisierung verfügbar ist (Entscheidungsschritt S504, Verzweigung „JA“), fährt das Aktualisierungsanalyseprogramm 102 mit einem Schritt S506 fort.
-
In dem Schritt S506 führt das Aktualisierungsanalyseprogramm 102 einen Einheitenprofil-Lerner aus. Ausführungsformen des Einheitenprofil-Lerners werden weiter unten in Bezug auf 6 ausführlicher beschrieben.
-
In einem Entscheidungsschritt S508 ermittelt das Aktualisierungsanalyseprogramm 102, ob es eine Administratoreinheit gibt, um bei einem Aktualisieren einer Kindheit Unterstützung behilflich zu sein. Wenn ermittelt wird, dass es keine Administratoreinheit gibt (Entscheidungsschritt S508, Verzweigung „NEIN“), fährt das Aktualisierungsanalyseprogramm 101 mit einem Schritt S510 fort. Wenn ermittelt wird, dass es eine Administratoreinheit gibt (Entscheidungsschritt S508, Verzweigung „JA“), fährt das Aktualisierungsanalyseprogramm 102 mit einem Schritt S514 fort.
-
In dem Entscheidungsschritt S510 ermittelt das Aktualisierungsanalyseprogramm 102, ob es über einen vorgegebenen Zeitraum hinweg eine Überlappung von Plänen gibt. Wenn ermittelt wird, dass es über den vorgegebenen Zeitraum hinweg keine Überlappung von Plänen gibt (Entscheidungsschritt S510, Verzweigung „NEIN“), fährt das Aktualisierungsanalyseprogramm 102 mit einem Schritt S512 fort. Wenn ermittelt wird, dass es über den festgelegten Zeitraum hinweg eine Überlappung von Plänen gibt (Entscheidungsschritt S510, Verzweigung „NEIN“), fährt das Aktualisierungsanalyseprogramm 102 mit einem Schritt S514 fort.
-
In dem Schritt S512 erhöht das Aktualisierungsanalyseprogramm 102 die Überlappungszeit. Bei einer Ausführungsform kann das Aktualisierungsanalyseprogramm 102 die Zeitdauer in dem Zeitraum erhöhen. Wenn das Aktualisierungsanalyseprogramm 102 zum Beispiel nicht ausreichend lange, aufeinanderfolgende Zeitspannen erkennt, um die Aktualisierung sowohl für die Server-Administrator-Einheit als auch für die Kindeinheit durchzuführen, wird die akzeptable Zeitspanne erhöht, in welcher die Aktualisierung durchgeführt werden kann, um zu ermitteln, ob es bei einer weiteren künftigen Zeitspanne eine Überlappung zwischen der Administratoreinheit und der Kindeinheit gibt. Wenn ermittelt wird, dass die künftige Zeitspanne, in der eine Aktualisierung durchgeführt werden soll, erhöht wird und keine akzeptable überlappende Zeitspanne zum Durchführen der Aktualisierung gefunden wird, kann das Aktualisierungsanalyseprogramm 102 eine erzwungene Aktualisierung der Kindeinheit durchführen.
-
In dem Schritt S514 erzeugt das Aktualisierungsanalyseprogramm 102 Kalenderoptionen für die Administratoreinheit. Bei einer Ausführungsform speichert das Aktualisierungsanalyseprogramm 102 die verfügbare Aktualisierungszeit in dem Kalender der Administratoreinheit.
-
In einem Schritt S516 erzeugt das Aktualisierungsanalyseprogramm 102 Kalenderoptionen für die Kindeinheit. Bei einer Ausführungsform speichert das Aktualisierungsanalyseprogramm 102 die verfügbare Aktualisierungszeit in dem Kalender der Kindeinheit.
-
6 ist eine Ablaufplandarstellung, die Arbeitsschritte zum Planen einer allgemein als 600 bezeichneten Benutzereinheitenaktualisierung gemäß mindestens einer Ausführungsform der vorliegenden Erfindung darstellt. 6 stellt lediglich eine Veranschaulichung einer Ausführung bereit und impliziert keinerlei Beschränkungen mit Blick auf die Umgebungen, in denen verschiedene Ausführungsformen realisiert werden können. Der Fachmann kann viele Abwandlungen an der dargestellten Umgebung vornehmen, ohne von dem durch die Ansprüche geltend gemachten inhaltlichen Umfang der Erfindung abzuweichen.
-
In einem Schritt S602 ermittelt das Aktualisierungsanalyseprogramm 102 die Verfügbarkeit des Einheitenbenutzers. Bei einer Ausführungsform ermittelt das Aktualisierungsanalyseprogramm 102 die Verfügbarkeit des Einheitenbenutzers auf Grundlage des Plans 410.
-
In einem Entscheidungsschritt S604 ermittelt das Aktualisierungsanalyseprogramm 102, ob der Benutzer verfügbar ist. Das Aktualisierungsanalyseprogramm 102 kann zum Beispiel ermitteln, ob der Benutzer verfügbar ist, wenn die Einheitenaktualisierung eine Benutzereingabe erfordert, z.B. ein Eingeben eines Kennworts, ein Akzeptieren oder Ablehnen der Aktualisierung, ein Auswählen verschiedener Benutzeroptionen während der Aktualisierung usw. Wenn ermittelt wird, dass der Benutzer nicht verfügbar ist (Entscheidungsschritt S604, Verzweigung „NEIN“), fährt das Aktualisierungsanalyseprogramm 102 mit einem Schritt S606 fort. Wenn ermittelt wird, dass der Benutzer verfügbar ist (Entscheidungsschritt S604, Verzweigung „JA“), fährt das Aktualisierungsanalyseprogramm 102 mit einem Schritt S610 fort.
-
In dem Schritt S606 ermittelt das Aktualisierungsanalyseprogramm 102 die Art des Benutzer-Ereignisses. Bei einer Ausführungsform ermittelt das Aktualisierungsanalyseprogramm 102 die Art des Kalender-Ereignisses. Zum Beispiel ermittelt das Aktualisierungsanalyseprogramm 102, ob das Kalender-Ereignis eine Arbeitsbesprechung, ein Arzttermin oder ein Mittagessen ist. Bei einer Ausführungsform ermittelt das Aktualisierungsanalyseprogramm 102 die Art des Benutzer-Ereignisses anhand des Standorts, der in dem Kalender-Ereignis genannt wird. Bei einer Ausführungsform fordert das Aktualisierungsanalyseprogramm 102 den Benutzer auf, die Ereignisart anzugeben.
-
In einem Entscheidungsschritt S608 ermittelt das Aktualisierungsanalyseprogramm 102, ob das Benutzer-Ereignis eine Verwendung der Einheit erfordert. Zum Beispiel ermittelt das Aktualisierungsanalyseprogramm 102, dass das Benutzer-Ereignis ein Arzttermin ist und die Einheit nicht erfordert. In einem weiteren Beispiel ermittelt das Aktualisierungsanalyseprogramm 102, dass das Benutzer-Ereignis eine Arbeitsbesprechung ist, welche die Einheit erfordert. Bei einer Ausführungsform ermittelt das Aktualisierungsanalyseprogramm 102 anhand des Standorts, der in dem Kalender-Ereignis genannt wird, mit den Standortdiensten 420, ob das Benutzer-Ereignis die Verwendung der Einheit erfordert. Bei einer Ausführungsform ermittelt das Aktualisierungsanalyseprogramm 102, ob das Benutzer-Ereignis eine Verwendung des Einheitenstandorts zum Verfolgen der Einheit erfordert. Wenn das Aktualisierungsanalyseprogramm 102 zum Beispiel ermittelt, dass sich die Einheit in einem Cafe befindet, kann das Aktualisierungsanalyseprogramm 102 ermitteln, dass das Ereignis keine Verwendung der Einheit erfordert. Bei einer Ausführungsform fordert das Aktualisierungsanalyseprogramm 102 den Benutzer auf, anzugeben, ob er seine bzw. ihre Einheit für ein Ereignis benötigt. Bei einer Ausführungsform bewertet das Aktualisierungsanalyseprogramm 102 die historische Verwendung der Einheit für ähnliche Ereignisarten, um zu ermitteln, ob das Benutzer-Ereignis eine Verwendung der Einheit erfordert. Wenn ermittelt wird, dass das Ereignis die Einheit nicht erfordert (Entscheidungsschritt S608, Verzweigung „NEIN“), fährt das Aktualisierungsanalyseprogramm 102 mit dem Schritt S610 fort. Wenn ermittelt wird, dass das Ereignis die Einheit erfordert (Entscheidungsschritt S608, Verzweigung „JA“), fährt das Aktualisierungsanalyseprogramm 102 mit einem Schritt S614 fort.
-
In dem Schritt S610 analysiert das Aktualisierungsanalyseprogramm 102 die Bildschirmzeit des Einheitenbenutzers. Bei einer Ausführungsform ermittelt das Aktualisierungsanalyseprogramm 102, ob ein Benutzer seine bzw. ihre Einheit historisch zu einer bestimmten Zeit verwendet. Zum Beispiel ermittelt das Aktualisierungsanalyseprogramm 102, ob ein Benutzer seine bzw. ihre Einheit dienstags um 18:00 Uhr historisch verwendet.
-
In einem Entscheidungsschritt S612 ermittelt das Aktualisierungsanalyseprogramm 102, ob die Benutzereinheit momentan in Verwendung ist. Bei einer Ausführungsform ist eine Einheit in Verwendung, wenn der Benutzer die Einheit momentan verwendet. Bei einer Ausführungsform ist eine Einheit in Verwendung, wenn eine Anwendung auf der Einheit ausgeführt wird. Bei einer Ausführungsform ist eine Einheit in Verwendung, wenn Daten an die Einheit und/oder von der Einheit übertragen werden. Wenn ermittelt wird, dass die Einheit in Verwendung ist (Entscheidungsschritt S612, Verzweigung „JA“), fährt das Aktualisierungsanalyseprogramm 102 mit dem Schritt S614 fort. Wenn ermittelt wird, dass die Einheit nicht in Verwendung ist (Entscheidungsschritt S612, Verzweigung „NEIN“), fährt das Aktualisierungsanalyseprogramm 102 mit einem Entscheidungsschritt S616 fort.
-
In dem Entscheidungsschritt S616 ermittelt das Aktualisierungsanalyseprogramm 102, ob es eine akzeptable Netzwerkverbindung gibt. Bei einer Ausführungsform ist eine akzeptable Netzwerkverbindung eine Netzwerkgeschwindigkeit oberhalb eines vorgegebenen Schwellenwerts zum Durchführen einer bestimmten Aktualisierung. Bei einer Ausführungsform ist eine akzeptable Netzwerkverbindung eine Netzwerkbandbreite oberhalb eines vorgegebenen Schwellenwerts zum Durchführen einer bestimmten Aktualisierung. Wenn ermittelt wird, dass es keine akzeptable Netzwerkverbindung gibt (Entscheidungsschritt S616, Verzweigung „NEIN“), fährt das Aktualisierungsanalyseprogramm 102 mit dem Schritt S614 fort. Wenn ermittelt wird, dass die Einheit eine akzeptable Netzwerkverbindung hat (Entscheidungsschritt S612, Verzweigung „JA“), fährt das Aktualisierungsanalyseprogramm 102 mit einem Entscheidungsschritt S618 fort.
-
In dem Entscheidungsschritt S618 ermittelt das Aktualisierungsanalyseprogramm 102, ob ein Ladezustand der Benutzereinheit akzeptabel ist. Bei einer Ausführungsform wird ein akzeptabler Ladestand mindestens teilweise auf Grundlage dessen ermittelt, dass ein Prozentsatz einer verbleibenden Akkulaufzeit oberhalb eines vorgegebenen Schwellenwerts zum Durchführen einer bestimmten Aktualisierung liegt. Bei einer Ausführungsform wird ein akzeptabler Ladestand des Weiteren auf Grundlage der Strommenge ermittelt, der während einer bestimmten Aktualisierung verbraucht wird. Bei einer Ausführungsform wird ein akzeptabler Ladestand des Weiteren auf Grundlage der Akku-Art, des Alters des Akkus und historischer Akkuverwendungsdaten einer bestimmten Benutzereinheit ermittelt. Wenn ermittelt wird, dass es keinen akzeptablen Ladestand gibt (Entscheidungsschritt S618, Verzweigung „NEIN“), fährt das Aktualisierungsanalyseprogramm 102 mit dem Schritt S614 fort. Wenn ermittelt wird, dass die Einheit einen akzeptablen Ladestand hat (Entscheidungsschritt S618, Verzweigung „JA“), fährt das Aktualisierungsanalyseprogramm 102 mit einem Schritt S620 fort.
-
In dem Schritt 614 markiert das Aktualisierungsanalyseprogramm 102 die vorgegebene Zeitspanne zum Aktualisieren der Benutzereinheit in dem Firmware-Planer 440 als nicht verfügbar.
-
In dem Schritt 620 markiert das Aktualisierungsanalyseprogramm 102 die vorgegebene Zeitspanne zum Aktualisieren der Benutzereinheit in dem Firmware-Planer 440 als verfügbar.
-
7 ist ein Blockschaubild, das Komponenten einer allgemein als 700 bezeichneten Datenverarbeitungseinheit darstellt, die geeignet sind, um ein Aktualisierungsanalyseprogramm 101 und ein Aktualisierungsanalyseprogramm 102 gemäß mindestens einer Ausführungsform der Erfindung auszuführen. Die Datenverarbeitungseinheit 700 enthält einen oder mehrere Prozessoren 704 (z.B. einen oder mehrere Computer-Prozessoren), eine Datenübertragungsstruktur 702, einen Arbeitsspeicher 706 wie z.B. einen RAM 716 und einen Cache 718, einen persistenten Speicher 708, der des Weiteren das Aktualisierungsanalyseprogramm 101 wie z.B. den Firmware-Aktualisierungsanalysator 600, den Firmware-Aktualisierungsplaner 140 und den Systemprofil-Lerner 500 sowie das Aktualisierungsanalyseprogramm 102 wie z.B. den Einheiten-Firmware-Aktualisierungsanalysator 300, den Firmware-Planer 440 und den Einheitenprofil-Lerner 450 enthält, eine Datenübertragungseinheit 712, eine bzw. mehrere E/A-Schnittstellen 714, eine Anzeige 722 und eine bzw. mehrere externe Einheiten 720. Dabei sollte klar sein, dass 7 lediglich zur Veranschaulichung einer Ausführungsform dient und keinerlei Beschränkungen mit Blick auf die Umgebungen impliziert, in denen verschiedene Ausführungsformen realisiert werden können. Vielmehr können an der dargestellten Umgebung zahlreiche Abwandlungen vorgenommen werden.
-
Wie dargestellt, wird das Computersystem 700 über die Datenübertragungsstruktur 702 betrieben, die eine Datenübertragung zwischen dem einem bzw. den mehreren Computerprozessoren 704, dem Arbeitsspeicher 706, dem persistenten Speicher 708, dem Netzwerkadapter 712 und der einen bzw. den mehreren Eingabe/Ausgabe(E/A)-Schnittstellen 714 bereitstellt. Die Datenübertragungsstruktur 702 kann mit einer beliebigen Architektur realisiert werden, die dafür geeignet ist, zwischen dem einen bzw. den mehreren Prozessoren 704 (z.B. Mikroprozessoren, Datenübertragungs- und Netzwerkprozessoren usw.), dem Arbeitsspeicher 706, der einen bzw. den mehreren externen Einheiten 720 und beliebigen anderen Hardware-Komponenten innerhalb eines Systems Daten oder Steuerungsinformationen weiterzuleiten. Die Datenübertragungsstruktur 702 kann zum Beispiel mit einem oder mehreren Bussen realisiert werden.
-
Der Arbeitsspeicher 706 und der persistente Speicher 708 sind computerlesbare Speichermedien. In der dargestellten Ausführungsform enthält der Arbeitsspeicher 706 den Direktzugriffsspeicher (RAM) 716 und den Cache 718. Im Allgemeinen kann der Arbeitsspeicher 706 alle geeigneten einen oder mehreren flüchtigen oder nicht flüchtigen, computerlesbaren Speichermedien enthalten.
-
Programmanweisungen für das Aktualisierungsanalyseprogramm 101 und das Aktualisierungsanalyseprogramm 102 können in dem persistenten Speicher 708 oder allgemeiner in allen computerlesbaren Speichermedien gespeichert werden, um über einen oder mehrere des Arbeitsspeichers 706 durch einen oder mehrere der betreffenden Computerprozessoren 704 ausgeführt zu werden. Der persistente Speicher 708 kann ein magnetisches Festplattenlaufwerk, eine Halbleiterplatte, eine Halbleiter-Speichereinheit, ein Festwertspeicher (ROM), ein löschbarer programmierbarer ROM (EPROM), ein Flash-Speicher oder jedes andere computerlesbare Speichermedium sein, das in der Lage ist, Programmanweisungen oder digitale Informationen zu speichern.
-
Durch den persistenten Speicher 708 verwendete Medien können auch entfernbar sein. Zum Beispiel kann ein entfernbares Festplattenlaufwerk als der persistente Speicher 708 verwendet werden. Andere Beispiele enthalten optische und Magnetplatten, USB-Sticks und Smartcards, die in ein Laufwerk eingeführt werden, um eine Übertragung auf ein weiteres computerlesbares Speichermedium vorzunehmen, das ebenfalls Teil des persistenten Speichers 708 ist.
-
Die Datenübertragungseinheit 712 stellt in diesen Beispielen eine Datenübertragung mit anderen Datenverarbeitungssystemen oder -einheiten bereit. In diesen Beispielen kann die Datenübertragungseinheit 712 eine oder mehrere Netzwerkschnittstellenkarten enthalten. Die Datenübertragungseinheit 712 kann eine Datenübertragung sowohl über physische als auch über drahtlose Datenübertragungsverbindungen bereitstellen. In Zusammenhang mit manchen Ausführungsformen der vorliegenden Erfindung kann die Quelle der verschiedenen Eingabedaten physisch entfernt von der Datenverarbeitungseinheit 700 angeordnet sein, sodass die Eingabedaten über die Datenübertragungseinheit 712 empfangen und die Ausgabe entsprechend über diese übertragen werden können.
-
Die eine bzw. die mehreren E/A-Schnittstellen 714 ermöglichen eine Eingabe und Ausgabe von Daten in andere oder aus anderen Einheiten, die mit der Datenverarbeitungseinheit 700 verbunden werden können. Zum Beispiel können die eine bzw. die mehreren E/A-Schnittstellen 714 eine Verbindung zu der einen bzw. den mehreren externen Einheiten 720 bereitstellen, z.B. zu einer Tastatur, einem Tastenfeld, einem berührungsempfindlichen Bildschirm oder anderweitigen geeigneten Eingabeeinheiten. Die eine bzw. die mehreren externen Einheiten 720 können auch tragbare computerlesbare Speichermedien wie z.B. USB-Sticks, tragbare optische oder Magnetplatten und Speicherkarten enthalten. Software und Daten zur praktischen Umsetzung von Ausführungsformen der vorliegenden Erfindung können auf derartigen tragbaren computerlesbaren Speichermedien gespeichert und über die eine bzw. die mehreren E/A-Schnittstellen 714 in den persistenten Speicher 708 geladen werden. Die eine bzw. die mehreren E/A-Schnittstellen 714 können entsprechend auch mit einer Anzeige 722 verbunden werden. Die Anzeige 722 stellt einen Mechanismus bereit, um einem Benutzer Daten anzuzeigen, und kann zum Beispiel ein Computermonitor sein.
-
Es sei klargestellt, dass das Umsetzen der hierin angeführten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt ist, obwohl diese Offenbarung eine ausführliche Beschreibung von Cloud-Computing enthält. Vielmehr können Ausführungsformen der vorliegenden Erfindung gemeinsam mit jeder beliebigen Art von jetzt bekannter oder später entwickelter Datenverarbeitungsumgebung umgesetzt werden.
-
Cloud-Computing ist ein Servicebereitstellungsmodell zum Ermöglichen eines problemlosen bedarfsgesteuerten Netzwerkzugriffs auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Hauptspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste), die mit minimalem Verwaltungsaufwand bzw. minimaler Interaktion mit einem Anbieter des Service schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Eigenschaften, 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 Serverzeit 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, welche die Verwendung durch heterogene Thin- oder Thick-Client-Plattformen (z.B. Mobiltelefone, Laptops und PDAs) unterstützen.
-
Resource-Pooling: Die Datenverarbeitungsressourcen des Anbieters werden zusammengeschlossen, um mehreren Nutzern unter Verwendung eines Multi-Tenant-Modells zu dienen, wobei verschiedene physische und virtuelle Ressourcen dynamisch nach Bedarf zugewiesen und neu zugewiesen werden. Es gibt eine gefühlte Standortunabhängigkeit, da der Nutzer allgemein keine Kontrolle bzw. Kenntnis über den genauen Standort der bereitgestellten Ressourcen hat, aber in der Lage sein kann, einen Standort auf einer höheren Abstraktionsebene festzulegen (z.B. Land, Staat oder Rechenzentrum).
-
Rapid Elasticity: 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.
-
8 ist ein Blockschaubild, das eine Cloud-Computing-Umgebung 50 gemäß mindestens einer Ausführungsform der vorliegenden Erfindung darstellt. Die Cloud-Computing-Umgebung 50 enthält einen oder mehrere Cloud-Computing-Knoten 10, mit denen von Cloud-Nutzern verwendete lokale Datenverarbeitungseinheiten wie der persönliche digitale Assistent (PDA) oder das Mobiltelefon 54A, der Desktop Computer 54B, der Laptop Computer 54C und/oder das Automobil-Computer-System 54N Daten austauschen können. Die Knoten 10 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 50, Infrastruktur, Plattformen und/oder Software als Dienst anzubieten, für die ein Cloud-Nutzer keine Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es sei darauf hingewiesen, dass die Arten von in 8 gezeigten Datenverarbeitungseinheiten 54A bis N lediglich veranschaulichend sein sollen und dass die Datenverarbeitungsknoten 10 und die Cloud-Computing-Umgebung 50 ü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.
-
9 ist ein Blockschaubild, das einen Satz von funktionalen Abstraktionsmodellschichten veranschaulicht, die gemäß mindestens einer Ausführungsform der vorliegenden Erfindung durch die Cloud-Computing-Umgebung 50 aus 9 bereitgestellt werden. Es sollte von vornherein klar sein, dass die in 9 gezeigten Komponenten, Schichten und Funktionen lediglich veranschaulichend sein sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie abgebildet ist, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
-
Eine Hardware- und Software-Schicht 60 enthält Hardware- und Software-Komponenten. Zu Beispielen für Hardware-Komponenten gehören: Mainframe Computer 61; auf der RISC-Architektur (Reduced Instruction Set Computer) beruhende Server 62; Server 63; Blade-Server 64; Speichereinheiten 65; und Netzwerke sowie Netzwerkkomponenten 66. In einigen Ausführungsformen enthalten Software-Komponenten eine Netzwerk-Anwendungsserver-Software 67 und eine Datenbank-Software 68.
-
Eine Virtualisierungsschicht 70 stellt eine Abstraktionsschicht bereit, aus der die folgenden Beispiele für virtuelle Einheiten bereitgestellt werden können: virtuelle Server 71, virtueller Speicher 72, virtuelle Netzwerke 73, darunter virtuelle private Netzwerke, virtuelle Anwendungen und Betriebssysteme 74; und virtuelle Clients 75.
-
In einem Beispiel kann eine Verwaltungsschicht 80 die nachfolgend beschriebenen Funktionen bereitstellen. Eine Ressourcen-Bereitstellung 81 stellt die dynamische Beschaffung von Datenverarbeitungsressourcen sowie anderen Ressourcen bereit, die zum Durchführen von Aufgaben innerhalb der Cloud-Computing-Umgebung verwendet werden. Ein Messen und eine Preisfindung 82 stellen die Kostenverfolgung beim Verwenden von Ressourcen innerhalb der Cloud-Computing-Umgebung sowie die Abrechnung oder Rechnungsstellung für den Verbrauch dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Anwendungs-Software-Lizenzen aufweisen. 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 83 stellt Nutzern und Systemadministratoren einen Zugriff auf die Cloud-Computing-Umgebung bereit. Eine Verwaltung des Dienstumfangs 84 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) 85 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 90 stellt Beispiele für die Funktionalität bereit, für welche die Cloud-Computing-Umgebung verwendet werden kann. Zu Beispielen für Arbeitslasten und Funktionen, die von dieser Schicht bereitgestellt werden können, gehören: Abbildung und Navigation 91; Software-Entwicklung und Lebenszyklusverwaltung 92; Bereitstellung von Ausbildung in virtuellen Klassenzimmern 93; Datenanalytikverarbeitung 94; Transaktionsverarbeitung 95; und Verarbeitung 96 einer Einheitenaktualisierung.