-
Bereich der Erfindung
-
Die vorliegende Erfindung betrifft allgemein Systemverwaltungs-Anwendungen. Insbesondere dient die Erfindung zum Verwalten der Konfiguration von Systemverwaltungsagenten in einer verteilten Umgebung.
-
Der Erfindung zugrunde liegender allgemeiner Stand der Technik
-
Bei Systemverwaltungs-Anwendungen tauscht ein zentraler Systemverwaltungs-Server Daten mit Agenten, der Systemverwaltungs-Client-Anwendung, aus, die auf den verteilten Systemen installiert ist, bei denen es sich um Computer oder einfache Einheiten handelt. In Abhängigkeit von der Art des verteilten Systems führt der Agent eine Reihe von Systemverwaltungs-Funktionen aus, die sich von System zu System unterscheiden können. Der Unterschied kann von der Art des Systems, seinem Leistungsprofil und der Rolle, die es in dieser verteilten Umgebung spielt, herrühren. Zum Beispiel muss ein verteiltes System, bei dem es sich um einen Server mit einer Mono-Anwendung handelt, gewöhnliche Systemüberwachungs-Informationen an den Systemverwaltungs-Server melden, und es muss Meldungen in Zusammenhang mit der spezifischen Besonderheit der Anwendung machen. Ein weiteres Beispiel ist der Fall, in dem das verteilte System eine einfache Einheit wie zum Beispiel ein persönlicher digitaler Assistent (PDA) ist, auf dem die Systemverwaltungs-Funktionen begrenzt sind. Die Agenten müssen auf den verteilten Einheiten Systemverwaltungs-Funktionen wie zum Beispiel die Verteilung von Software, die Zuteilung der Arbeitslast oder die Systemüberwachung ausführen. Eine Agenten-Konfiguration, die Software-Elemente und Daten umfasst, kann auf den verteilten Einheiten installiert werden, um diese Funktionen auszuführen. Es liegt gewöhnlich in der Verantwortung des Administrators, die Software-Konfiguration entsprechend den Systemverwaltungs-Funktionen, die die Agenten unterstützen müssen, von dem Systemverwaltungs-Server an jeden Agenten zu verteilen. Diese manuellen Vorgänge sind von langer Dauer und müssen automatisiert werden.
-
Es gibt folglich einen ersten Bedarf für die Automatisierung des Herunterladens von Konfigurationen auf die verteilten Systeme.
-
Während dieser Herunterlade-Sitzungen nimmt der Administrator außerdem den Server und das Netzwerk von der zentralen Website für eine Dauer in Anspruch, die insbesondere in großen verteilten Umgebungen sehr lang sein kann.
-
In diesem Zusammenhang besteht auch ein Bedarf für die Verbesserung der Kostensituation und des Zeitaufwands, die bzw. der mit der Verteilung der Konfiguration an Agenten auf einer großen Anzahl von Maschinen einhergeht.
-
Eine Lösung besteht darin, rohe Binärdateien auf eine Maschine zu laden (dies wird gewöhnlich von der IT-Abteilung vorgenommen), bevor die Maschine in der Produktion eingesetzt wird. Dies ist jedoch nicht der beste Lösungsansatz, da die Maschinen kundenspezifisch angepasst werden müssen und schließlich nicht alle Maschinen die gleiche Konfiguration erforderlich machen, da man weiß, dass sie nicht alle von demselben Spektrum an Systemverwaltungs-Funktionen Gebrauch machen. Die Bereitstellung der gleichen maximalen Konfiguration einschließlich aller möglichen Funktionen wäre jedoch im Hinblick auf den Platzbedarf zu kostspielig. Zum Beispiel mag es bei manchen Maschinen eines Datenzentrums erforderlich sein, sie vorab mit den Funktionen zur Ausführung der jeweiligen Aufgabe zu laden, während Endbenutzer-Maschinen über Funktionen zur Einhaltung von Sicherheitsrichtlinien und zur Verteilung von Software verfügen müssen.
-
In der
US-Patentschrift Nr. 6 976 145 ”Method and apparatus for automatically configuring data storage” wird eine Lösung für ein automatisches Hochladen von Konfigurationen auf verteilte Datenspeicher-Subsysteme vorgeschlagen. Um das Kosten- und Zeitproblem der manuellen Vorgänge des Herunterladens der Konfiguration auf verteilte Datenspeicher-Teilsysteme zu begrenzen, wird die Konfiguration in dem Netzwerk der verteilten Datenspeichersysteme automatisch unter Gleichgestellten geklont (peer to peer cloning). Jedes verteilte System weist ein Betriebssystem auf, bei dem es sich um eine bereits installierte Urlade-Komponente handelt, und die Konfiguration des Datenspeicher-Teilsystems fügt die zur Speicherung der Benutzerdaten notwendigen Systemdaten hinzu. Die Konfiguration wird in einem Sende- oder Empfangsmodus von einem gleichgestellten Datenspeicher-Subsystem heruntergeladen.
-
Wenn man die Konfiguration zwischen Gleichgestellten des verteilten Netzwerks zum Zweck der Systemverwaltung auf die gleiche Art überträgt, erzielt man den gleichen Vorteil wie bei der Entlastung des zentralen Servers und des Netzwerks, und der Vorgang des Klonens verringert Fehler und verbessert die Leistungsfähigkeit während der Konfigurationsphase.
-
Es besteht jedoch nach wie vor ein Bedarf für eine automatische Übertragung der Konfigurationen von Systemverwaltungsagenten an die verteilten Systeme in der Weise, dass jeder Agent die Konfiguration empfängt, die auf die Systemverwaltungsfunktionen, welche er entsprechend seinem Leistungsprofil unterstützen muss, ausgelegt ist.
-
Kurzdarstellung der Erfindung
-
Es ist folglich eine Aufgabe der vorliegenden Erfindung, ein Verfahren bereitzustellen, das der automatischen Verteilung von Konfigurationen von Systemverwaltungsagenten an die Systeme der verteilten Umgebung dient, in der bestimmte Systemverwaltungs-Funktionen entsprechend dem Leistungsprofil des verteilten Systems unterstützt werden.
-
Die Aufgabe wird nach Anspruch 1 mit einem Verfahren zum Verwalten von Konfigurationen von Systemverwaltungsagenten, die Systemverwaltungsprogramme für Agenten und Programm-Parameter umfassen, in einer verteilten Umgebung, die verteilte Systeme umfasst, auf denen mindestens ein Agent installiert ist, gelöst, wobei das Verfahren Folgendes umfasst:
- – Auffordern eines Konfigurations-Servers, einen Konfigurationsdatensatz zu senden, der die Konfiguration des Agenten für ein verteiltes System, das eine Konfiguration erforderlich macht, beschreibt;
- – Empfangen eines Konfigurationsdatensatzes, der die Konfiguration eines Agenten beschreibt, von dem Konfigurations-Server;
- – Berechnen eines aktuellen Konfigurationsdatensatzes eines Agenten, welcher der aktuellen Konfiguration des Agenten entspricht, die auf dem verteilten System installiert ist, das eine Konfiguration erforderlich macht;
- – Feststellen, ob sich der aktuelle Konfigurationsdatensatz des Agenten von dem Konfigurationsdatensatz unterscheidet, der von dem Server empfangen wurde, und wenn er sich unterscheidet, Auffordern des Konfigurations-Servers, eine Liste mit verteilten Systemen zu senden, von denen angenommen wird, dass sie die gleiche Agenten-Konfiguration haben;
- – Kontaktieren der verteilten Systeme von der Liste und Auswählen von einem verteilten System, das einen aktuellen Konfigurationsdatensatz hat, der mit dem Konfigurationsdatensatz übereinstimmt, welcher von dem Server empfangen wurde;
- – Auffordern des eine Übereinstimmung aufweisenden verteilten Systems von der Liste, seine Agenten-Konfiguration zu senden;
- – nach dem Empfang der Agenten-Konfiguration Installieren der Agenten-Konfiguration auf dem verteilten System, das eine Konfiguration erforderlich macht.
-
Die Aufgabe wird auch mit dem Verfahren nach Anspruch 2 gelöst, das des Weiteren das Berechnen des Konfigurationsdatensatzes des soeben installierten Agenten und das Senden des Konfigurationsdatensatzes an den Konfigurations-Server umfasst.
-
Die Aufgabe wird nach Anspruch 3 auch mit dem Verfahren nach Anspruch 1 oder 2 gelöst, bei dem der Installationsschritt das Klonen der gesamten Konfiguration des Agenten von dem eine Übereinstimmung aufweisenden verteilten System durch das eine Übereinstimmung aufweisende verteilte System beinhaltet.
-
Die Aufgabe wird nach Anspruch 4 auch mit dem Verfahren nach einem der Ansprüche 1 bis 3 gelöst, wobei die Konfigurationsdatensätze des Agenten einen Hash-Schlüssel umfassen, der aus der Agenten-Konfiguration berechnet wird, und wobei der Schritt des Feststellens einer mit dem aktuellen Konfigurationsdatensatz übereinstimmenden Konfiguration oder einer mit dem Konfigurationsdatensatz eines verteilten Systems von der Liste übereinstimmenden Konfiguration das Vergleichen des Hash-Schlüssels der Konfigurationsdatensätze umfasst, und wenn die Schlüssel gleich sind, sind auch die Konfigurationsdatensätze gleich.
-
Die Aufgabe wird nach Anspruch 5 auch mit dem Verfahren nach einem der Ansprüche 1 bis 4 gelöst, das des Weiteren das Speichern aller Konfigurationsdatensätze für alle Agenten und für alle Gruppen von Agenten durch den Konfigurations-Server umfasst, wobei jeder Agent einer Gruppe von Agenten die gleichen Agenten-Konfigurationsdatensätze hat, wobei ein Systemverwaltungs-Administrator eine Datenbank über eine Schnittstelle des Konfigurations-Servers aktualisiert.
-
Die Aufgabe wird nach Anspruch 6 auch mit dem Verfahren nach einem der Ansprüche 1 bis 5 gelöst, wobei die Schritte des Auswählens von einem verteilten System, das einen aktuellen Konfigurationsdatensatz hat, der mit dem Konfigurationsdatensatz übereinstimmt, welcher von dem Server empfangen wurde, des Weiteren das Auswählen des verteilten Systems, das in einem Netzwerk einer verteilten Umgebung geografisch am nächsten liegt, unter all den verteilten Systemen, die einen aktuellen Konfigurationsdatensatz haben, der mit dem Konfigurationsdatensatz übereinstimmt, welcher von dem Server empfangen wurde, umfassen.
-
Die Aufgabe wird nach Anspruch 7 auch mit dem Verfahren nach einem der Ansprüche 1 bis 6 gelöst, das, wenn der Konfigurations-Client keine verteilten Systeme von der Liste findet, die einen aktuellen Konfigurationsdatensatz haben, der mit dem Konfigurationsdatensatz übereinstimmt, welcher von dem Server empfangen wurde, des Weiteren das Auffordern des Konfigurations-Servers, die Agenten-Konfiguration herunterzuladen, umfasst.
-
Die Aufgabe wird nach Anspruch 8 auch mit einem Computerprogrammprodukt gelöst, das Befehle eines Programmiercodes umfasst, um die Schritte des Verfahrens nach einem der Ansprüche 1 bis 7 durchzuführen, wenn das Programm auf einem Computer ausgeführt wird.
-
Die Aufgabe wird nach Anspruch 9 auch mit einem System zum Verwalten von Konfigurationen von Systemverwaltungsagenten, die Systemverwaltungsprogramme für Agenten und Programm-Parameter umfassen, in einer verteilten Umgebung, die verteilte Systeme umfasst, auf denen mindestens ein Agent installiert ist, gelöst, wobei das System Folgendes umfasst:
- – einen Konfigurationsverwaltungs-Server, der eine Konfigurationsdatenbank verwaltet, die eine Beschreibung der Konfigurationen der Agenten des verteilten Systems enthält;
- – eine Konfigurationsverwalter-Client-Anwendung auf jedem verteilten System, die eine Beschreibung der Konfiguration ihres Agenten von dem Konfigurationsverwaltungs-Server anfordert und eine Liste von verteilten Systemen anfordert, die die gleiche Agenten-Konfiguration haben, wobei die Konfigurationsverwalter-Client-Anwendung die Agenten-Konfiguration von einem verteilten System von der Liste der verteilten Systeme bekommt, welche die gleiche Agenten-Konfiguration haben.
-
Die Aufgabe wird nach Anspruch 10 auch mit dem System nach Anspruch 9 gelöst, wobei der mindestens eine Agent, der auf jedem verteilten System installiert ist, eine Agenten-Kernkomponente umfasst, die die grundlegenden Funktionen für alle Agenten ausführt und Komponenten von Unterelementen beherbergt, von denen jede einem Systemverwaltungsprogramm entspricht, das mit den Parametern, die in seiner Agenten-Konfiguration festgelegt sind, kundenspezifisch angepasst wird.
-
Die Aufgabe wird nach Anspruch 11 auch mit dem System nach Anspruch 9 oder Anspruch 10 gelöst, das des Weiteren eine Datenbank umfasst, die von dem Konfigurations-Server verwendet wird, der alle Konfigurationsdatensätze für alle Agenten und für alle Gruppen von Agenten speichert, wobei jeder Agent einer Gruppe von Agenten den gleichen Agenten-Konfigurationsdatensatz hat.
-
Die Aufgabe wird nach Anspruch 12 auch mit dem System nach einem der Ansprüche 9 bis 11 gelöst, wobei es sich bei den verteilten Systemen um Computer oder persönliche digitale Assistenten oder Smartphones handelt.
-
Die vorgeschlagene Lösung stellt eine Konfigurationsverwaltungs-Anwendung bereit, die eine Server-Anwendung, welche auf dem zentralen Systemverwaltungs-Server ausgeführt wird, und Client-Anwendungen, die auf den verteilten Systemen ausgeführt werden, umfasst. Die Agenten des verteilten Systems können ihre Konfiguration dynamisch und automatisch anpassen, die die Eigenschaften des Systems und die Systemverwaltungsfunktionen, welche von den verteilten Systemen ausgeführt werden sollen, widerspiegeln. Diese automatische Anpassung beruht auf einem Dialog zwischen dem Server und dem Agenten, der von dem Agenten eingeleitet wird, welcher in regelmäßigen Abständen eine aktualisierte Liste von anderen Agenten anfordert, die ihm in dem Netzwerk, von dem er die Konfiguration herunterladen kann, gleichgestellt sind. Diese dynamische und automatische Konfiguration aktualisiert Entlastungen entsprechend dem Erfordernis des Netzwerks und des Systemverwaltungs-Servers, da in dem Netzwerk bedarfsweise geschaltete Verbindungen zwischen Gleichgestellten verwendet werden. Diese Übertragung der Konfiguration zwischen Gleichgestellten kann optimiert werden, wenn die Einheitenkonfigurator-Client-Anwendung, der ”Device Configurator”, nachdem sie eine gültige Liste von Gleichgestellten zusammengestellt hat, von denen die Konfiguration heruntergeladen werden kann, den Gleichgestellten auswählt, der in dem Netzwerk der nächstgelegene ist. Da das ”Netzwerk der verteilten Systeme” ein heterogenes Netzwerk sein kann, kann ein Teil des Gesamtnetzwerks ein Hochgeschwindigkeits-Übertragungsabschnitt sein, während andere Teile langsame Einwahlverbindungen sein können, und die verteilten Systeme können heterogene Einheiten (darunter Computer, persönliche digitale Assistenten oder Smartphones) sein. Zu Optimierungszwecken kann die Einheitenkonfigurator-Client-Anwendung optional einen Gleichgestellten auswählen, der in demselben Netzwerk der nächstgelegene ist.
-
Einige zusätzliche Vorteile werden mit der Erfindung erworben. Ein erster Vorteil ist die Flexibilität der Lösung: Gemischt mit der Lösung nach dem Stand der Technik in Form des Vorabladens von Agenten kann ein grundlegendes Abbild des Agenten vorab in eine Maschine geladen werden, die das Kernelement und den Einheitenkonfigurator umfassen kann. Wenn die Maschine in der Produktion eingesetzt wird, kann der Agent sich selbst konfigurieren und dabei den tatsächlichen Umfang des Systems widerspiegeln, indem er die erforderlichen Unterelemente und nur die erforderlichen Unterelemente und ihre Konfigurationsparameter von einem Gleichgestellten herunterlädt. Es gibt auch zwei weitere Aspekte der Flexibilität der Lösung: wenn ein neues System in einer bestimmten Abteilung hinzugefügt wird, kann der entsprechende Agent geklont werden, wobei von einem System, auf das Bezug genommen wird, gestartet wird, und der neue Agent passt die Konfiguration automatisch an das neue System an. Auch können die entsprechenden Agenten ihre Konfiguration automatisch ändern, wenn sich der Umfang des Systems in einer vorhandenen Umgebung mit verteilten Systemen ändert, indem sie einfach auf einen anderen gleichgestellten Agenten Bezug nehmen.
-
Grundsätzlich schließlich kann der IT-Administrator die Konfiguration auf einem einzigen Agenten aktualisieren, wenn er die Konfiguration von allen Agenten, die zu einer bestimmten Abteilung gehören, aktualisieren möchte. Diese Aktualisierung wird automatisch an die anderen Agenten übertragen.
-
Ein weiterer Vorteil der Lösung besteht darin, dass die Agenten einen sehr kleinen Platzbedarf auf den verteilten Systemen haben. Das Kernelement des Agenten (Agent Core Element) hat einen äußerst geringen Platzbedarf und bietet einen kleinen Satz an grundlegenden Funktionen; wenn die Agenten-Unterelemente zu diesem Kernelement des Agenten hinzugefügt werden, stellen sie die speziellen Systemverwaltungs-Funktionen bereit, und zwar nur die speziellen Systemverwaltungsfunktionen, von denen angenommen wird, dass sie auf dieser Art von verteiltem System ausgeführt werden.
-
Kurze Beschreibung der Zeichnungen
-
1 zeigt die Systemumgebung der bevorzugten Ausführungsform der Erfindung;
-
2 stellt den allgemeine Ablaufplan der Erfindung zur automatischen Konfiguration eines Systemverwaltungsagenten gemäß der bevorzugten Ausführungsform dar;
-
3 zeigt ein Beispiel eines Konfigurationsdatensatzes, der von dem Einheitenkonfigurator-Server in der Konfigurationsdatenbank gemäß der bevorzugten Ausführungsform verwaltet wird;
-
4 zeigt ein Beispiel eines Datensatzes einer Konfigurationsdatenbank, der von dem Einheitenkonfigurator-Server gemäß der bevorzugten Ausführungsform verwaltet wird.
-
Ausführliche Beschreibung der bevorzugten Ausführungsform
-
1 zeigt die Systemumgebung der bevorzugten Ausführungsform der Erfindung. Wie bereits nach dem Stand der Technik bekannt ist, steuert eine zentrale Systemverwaltungs-Anwendung, der Verwaltungsserver, (105), der Operationen auf einem Computer (100) durchführt, verteilte Systeme (110), bei denen es sich um herkömmliche Computer oder Übertragungseinheiten wie zum Beispiel persönliche digitale Assistenten oder Smartphones handeln kann, über ein Netzwerk oder über heterogene Netzwerke (120). Zu den üblichen Systemverwaltungsfunktionen gehören beispielsweise die Verteilung von Software, die Zuteilung der Arbeitslast oder die Systemüberwachung auf verteilten Einheiten. Der Verwaltungsserver tauscht mit den Agenten Daten aus, bei denen es sich um Anwendungen handelt, die auf dem Betriebssystem aufsetzen und in den verteilten Systemen vom Verwaltungsserver des Systems gesteuert ausgeführt werden. Die Agenten können beispielsweise Stapelverarbeitungsprogramme nach einem Kalender ausführen. Der Datenaustausch zwischen dem Verwaltungsserver und den Agenten erfolgt aufwärts/abwärts, wenn der Verwaltungsserver Konfigurationen oder Änderungen an Konfigurationen des Agenten sendet, und die Agenten können den Verwaltungsserver auch kontaktieren, wenn sie Systemverwaltungsdaten haben, die sie auf dem verteilten System erfasst und an den Verwaltungsserver zu übertragen haben. Die Agenten führen Systemverwaltungsfunktionen in Bezug auf das System aus, auf dem sie installiert sind. Der Verwaltungsserver kann mehrere Instanzen von Agenten auf demselben verteilten System unterstützen, die verwendet werden können, wenn mehrere Infrastrukturen vorhanden sind. Tatsächlich können die verteilten Systeme in Gruppen eingeteilt werden und Unterstützung bei der Systemverwaltung in Bezug auf die Systemverwaltungsfunktionen erhalten, die sie ausführen: sie können die Funktion eines Anwendungs-Servers für Operationen im Echtzeit-Produktionsmodus übernehmen, können aber auch gruppenweise nach Geschäftsbereichen zusammengefasst werden, wenn es sich bei ihnen um die Personal Computer eines Unternehmens handelt. Im Allgemeinen gehört jeder Agent zu einer Gruppe von Agenten, die ähnliche Systemverwaltungs-Funktionen für ein ähnliches verteiltes System erfüllen müssen. Die Verwaltung teilt dem Agenten mit, diejenigen Systemverwaltungs-Funktionen zu aktivieren, die von den Agenten nicht automatisch aktiviert werden, und/oder Systemverwaltungs-Informationen zu erfassen. Die Agenten können über ihre Netzwerkadresse oder eine beliebige Kennung, die den Daten der Maschine (des verteilten Systemcomputers oder der verteilten Einheit), zu denen auch die Netzwerkadresse gehört, 1:1 zugeordnet ist, identifiziert werden.
-
Ein Agent umfasst bestimmte Programme, die Systemverwaltungs-Funktionen entsprechen, die beispielsweise in ausführbarer Form oder interpretierter Sprache vorliegen. Der Agent umfasst auch Daten, bei denen es sich um Parameter handelt, die den verschiedenen Programmen wie zum Beispiel einem Kalender zur automatischen Ausführung zu übergeben sind. Die Lösung nach dem Stand der Technik kann darin bestehen, einen Agenten vor der Einsatz auf die verteilten Systeme hochzuladen, doch muss ein anfangs installierter Agent gegebenenfalls ohnehin häufig aktualisiert werden, da sich die Funktionen eines Agenten ändern können. Der IT-Administrator (130), der eine vom Verwaltungsserver bereitgestellte Schnittstelle nutzt, kann die Konfigurationen des Agenten auf die verteilten Systeme herunterladen. In der bevorzugten Ausführungsform kann dieser manuelle Vorgang durch die Verwendung der neuen Architektur ersetzt werden, die nachstehend beschrieben und in 1 dargestellt ist.
-
Eine neue Einheitenkonfigurator-Server-Anwendung (140), die Operationen auf dem Computer des Verwaltungsservers durchführt, stellt eine Schnittstelle zum IT-Administrator bereit. Über diese Schnittstelle verwaltet der IT-Administrator die Beschreibung der Konfigurationen der Agenten (die Konfigurationsdatensätze der Agenten) und die Listen mit den verteilten Systemen, die die gleiche Konfiguration haben:
diese Konfigurationsinformationen werden vom IT-Administrator in einer Konfigurationsdatenbank (150) gespeichert. Wie nachstehend erklärt ist, kann die Einheitenkonfigurator-Server-Anwendung Daten mit den Einheitenkonfigurator-Client-Anwendungen, die auf den verteilten Systemen installiert sind, austauschen. Anfängliche Agenten-Konfigurationen werden entweder vorab geladen, bevor sie auf den verteilten Servern installiert bzw. eingesetzt werden, oder sie werden zunächst vom IT-Administrator heruntergeladen. Anschließend können die Agenten ihre Konfiguration automatisch aktualisieren, indem sie die Einheitenkonfigurator-Client-Komponente (160) verwenden, die auf allen verteilten Systemen installiert ist: Diese Einheitenkonfigurator-Client-Komponente tauscht im Empfangsmodus mit dem Einheitenkonfigurator-Server Daten aus, um die Listen mit den verteilten Systemen anzufordern, die die gleiche Agenten-Konfiguration wie der Einheitenkonfigurator-Server (140) haben. Der Einheiten-Konfigurator-Client kann optional das verteilte System in der Liste auswählen, das in dem Netzwerk das nächstgelegene ist. Der Einheitenkonfigurator-Client kann ein Modell eines Netzwerks verwenden, das gleich den vorhandenen Modellen ist, die in Systemen zwischen Gleichgestellten (peer to peer systems) verwendet werden, oder er kann einfach einen Agenten mit ähnlichen Teilnetzwerken auswählen. Die Verwendung eines Netzwerk-Modells schließt die Berechnung von Parametern (wie die Bandbreite oder Verspätung) für Netzwerkrouten und einen bestimmten Algorithmus zur Auswahl der besten Agenten ein. Die einfache Auswahl eines Agenten mit einem ähnlichen Teilnetzwerk besteht in der Bevorzugung von Agenten, die zu ähnlichen Teilnetzwerken gehören, indem eine Berechnung der IP-Adresse durchgeführt wird.
-
Der Einheitenkonfigurator-Client kann auch die gleichgestellte verteilte Einheit in dem Netzwerk kontaktieren und die Konfiguration des Agenten klonen. Das bedeutet, dass die bisherige Konfiguration des Agenten durch die geklonte Konfiguration des Agenten ersetzt wird. Schließlich benachrichtigt der Einheitenkonfigurator-Client den Einheitenkonfigurator-Server über diese Aktualisierung. Neben der vom Einheitenkonfigurator-Client bereitgestellten Klon-Funktion umfasst die Architektur des Agenten (170, 180) eine Agenten-Komponente, das Agenten-Kernelement (170), das einen kleinen Satz von grundlegenden Agenten-Funktionen, jedoch keine speziellen Systemverwaltungsfunktionen zur Verfügung stellt. Das Agenten-Kernelement ist eine Urlade-Komponente, die zur Aufnahme der anderen Komponenten der Architektur des nämlich der Unterelemente (180), dient. Die Agenten-Unterelemente stellen spezielle Systemverwaltungs-Funktionen bereit. Es gibt viele Unterelemente, die im Laufe der Zeit entwickelt und angeboten wurden, um die verschiedenen Systemverwaltungs-Richtungen abzudecken. Das Agenten-Kernelement, das allen Agenten gemein ist, hat einen äußerst geringen Platzbedarf. Die Größe des Agenten hängt von der Anzahl der Unterelemente ab, die entsprechend der von den Agenten unterstützten Systemverwaltungsfunktionen unterschiedlich sein kann.
-
Im Allgemeinen entspricht ein Unterelement einem Programm und einer Systemverwaltungsfunktion. Eine Systemverwaltungsfunktion kann jedoch über das Hauptprogramm der Funktion die Installation von bestimmten Programmen, die vorausgesetzt werden, erforderlich machen. Folglich würde eine solche Systemverwaltungsfunktion die Installation von zwei Unterelementen, einem für die Hauptfunktion und einem anderen, das als vorausgesetztes Programm dient, erfordern. Es sei angemerkt, dass ein vorausgesetztes Programm auch als ein vorausgesetztes Programm oder als ein Hauptprogramm für eine andere Systemverwaltungsfunktion verwendet werden kann. Diese unterschiedlichen Fälle spiegeln sich auch im Aufbau des Konfigurationsdatensatzes wider, der später in dem Schriftstück in Bezug auf die Beschreibung von 3 erklärt wird.
-
Es sei erwähnt, dass ein grundlegendes Abbild des Agenten vorab auf eine Maschine (Agenten-Kernelement + den Einheitenkonfigurator-Client) geladen werden kann. Wenn die Maschine in der Produktion eingesetzt wird, kann der Agent sich selbst konfigurieren und dabei den tatsächlichen Umfang des Systems widerspiegeln, indem er die erforderlichen Unteragenten und Konfigurationsparameter von einem Gleichgestellten herunterlädt. Der Aufbau der Unterelemente ermöglicht gegebenenfalls eine schrittweise Aktualisierung der Größe des Agenten und eine problemlose Aktualisierung der Konfiguration des Agenten. Ein neues verteiltes System kann mit einem Agenten starten, der von einem anderen System kommt und sich selbst automatisch anpasst, um die Agenten-Konfiguration auf diesem neuen System zu installieren. Wenn der IT-Administrator die Konfiguration von allen Agenten aktualisieren möchte, die zu einer bestimmten Gruppe von verteilten Einheiten gehören, kann er die Konfiguration auf einem einzigen Agenten aktualisieren, und diese Aktualisierung wird dann von den anderen Agenten der Gruppe automatisch durchgeführt. Es sei angemerkt, dass Agenten für verteilte Systeme, die zu demselben Geschäftsbereich eines Unternehmens gehören, die gleiche Konfiguration haben sollten und dass die Agenten in verteilten Systemen, die zu anderen Geschäftsbereichen gehören, etwas anders sind.
-
2 stellt den allgemeinen Ablaufplan der Erfindung zur automatischen Konfiguration eines Systemverwaltungsagenten gemäß der bevorzugten Ausführungsform dar. Die Ablaufpläne beschreiben die Schritte des Verfahrens, das von der Einheitenkonfigurator-Komponente des Agenten durchgeführt wird, bei der es sich um die Einheitenkonfigurator-Client-Anwendung handelt, die auf dem verteilten System installiert ist. Genauer gesagt, der Ablaufplan veranschaulicht den Dialog zwischen der Einheitenkonfigurator-Komponente einer verteilten Einheit, dem Einheitenkonfigurator-Server und der Einheitenkonfigurator-Komponente von gleichgestellten verteilten Systemen. Der Prozess beginnt (200), wenn ein Agent seine Konfiguration prüfen muss. Dieser Prozess kann entweder von der Einheitenkonfigurator-Komponente in regelmäßigen Abständen aktiviert oder zum Zeitpunkt der Initialisierung des verteilten Systems automatisch aktiviert werden oder von einem Befehl initialisiert werden, der von der Einheitenkonfigurator-Server-Anwendung entweder automatisch oder auf Anforderung des IT-Administrators gesendet wird. Es sei auch angemerkt, dass die geringstmögliche Agenten-Konfiguration zur Aktivierung des Prozesses auf dem verteilten System das installierte Agenten-Kernelement und die installierte Einheitenkonfigurator-Client-Anwendung umfasst.
-
Der Einheitenkonfigurator-Client eines verteilten Systems lässt sich mit dem Einheitenkonfigurator-Server verbinden (205), um die Informationen über die Agenten-Konfiguration zu erhalten, die einer Agenten-Kennung des anfordernden Agenten entsprechen. Es sei erwähnt, dass der Einheitenkonfigurator-Client die Dienste des Agenten-Kernelements verwenden kann, das auf demselben verteilten System installiert ist, um eine Verbindung zu dem Einheitenkonfigurator-Server herzustellen. Jede andere Möglichkeit kann in Betracht gezogen werden wie zum Beispiel die Möglichkeit, dass ein Einheitenkonfigurator-Client selbst mit dem Einheitenkonfigurator-Server Daten austauschen kann, doch ist diese Option für den Grundgedanken der Lösung nicht wirklich von Bedeutung. Wie bereits zuvor in dem Schriftstück erklärt wurde, werden die Informationen über die Konfiguration in der Konfigurationsdatenbank (150) gespeichert und sie wurden vom IT-Administrator eingegeben. In der Datenbank gespeicherte Informationen über die Konfiguration eines Agenten beschreiben die Programme, die installiert werden müssen, um die Systemverwaltungs-Funktionen auszuführen, und die Parameter, die verwendet werden, um diese Programme kundenspezifisch anzupassen. Die ersten Informationen, die man mit der Kennung des Agenten im Schritt 205 erhält, sind eine Reihe von Konfigurationsdatensätzen des Agenten, die später in dem Schriftstück in Bezug auf die Beschreibung von 3 beschrieben werden. Üblicherweise bietet ein Datensatz, aber manchmal mehr als ein Datensatz, die Möglichkeit, eine Anwendung zu identifizieren, welche einer Systemverwaltungsfunktion entspricht, die von dem Agenten ausgeführt werden muss und die auch mindestens einem Programm oder Unterelement entspricht, das auf dem verteilten System installiert werden muss. Durch das Lesen der Programme, die in den ersten Konfigurations-Informationen aufgeführt sind, berechnet der Einheitenkonfigurator-Client seinen aktuellen Agenten-Konfigurationsdatensatz (210), wobei er die Programme der Unterelemente verwendet, die momentan installiert sind und lokal ausgeführt werden. Der Einheitenkonfigurator-Client prüft anhand des Hash-Schlüssels, der die entsprechende Systemverwaltungsfunktion kennzeichnet, ob auf dem Agenten bereits die gleiche Konfiguration installiert ist, indem er in der bevorzugten Ausführungsform den berechneten Hash-Schlüssel mit dem Hash-Schlüssel seines aktuellen Konfigurationsdatensatzes vergleicht. Wenn es eine Übereinstimmung gibt (Antwort ”Ja” im Test 215), muss die Konfiguration nicht aktualisiert werden, und der Prozess wird beendet (220). Dieser Prüfvorgang kann in regelmäßigen Abständen von den Einheitenkonfigurator-Clients durchgeführt werden, damit die Konfiguration des Agenten weiterhin mit der Planung des IT-Administrators übereinstimmt. Wenn der heruntergeladene Agenten-Konfigurationsdatensatz nicht mit den Konfigurationsdatensätzen übereinstimmt (Antwort ”Nein” im Test 215), bedeutet dies, dass die Konfiguration des Agenten aktualisiert werden muss. Es sei angemerkt, dass, wenn es zwischen dem aktuellen und dem heruntergeladenen Agenten-Konfigurationsdatensatz eine Übereinstimmung gibt, die richtigen Programme bereits installiert sind und diese Programme mit den korrekten Parametern in korrekter Weise kundenspezifisch angepasst wurden. Gewöhnlich gehört ein Agent zu einer Gruppe von Agenten, die die gleiche Konfiguration haben. Eine weitere Gruppe von Agenten kann sich davon unterscheiden, und zwar nicht nach der Art des Programms, das installiert ist, sondern nach der jeweiligen kundenspezifischen Anpassung der Agenten, da die Agenten beispielsweise nicht auf demselben Computer ausgeführt werden.
-
Wenn die Konfiguration des Agenten nicht auf dem neuesten Stand ist, weil der Konfigurationsdatensatz des Agenten nicht mit dem aktuellen Konfigurationsdatensatz übereinstimmt, stellt der Einheitenkonfigurator-Client eine Verbindung zu dem Einheitenkonfigurator-Server (225) her, um die Liste mit den gleichgestellten Agenten zu erhalten, die als Referenz für seine Konfiguration dienen. Dies kann bedeuten, dass sich die entsprechenden verteilten Systeme in derselben Gruppe befinden, zum Beispiel Personal Computer desselben Geschäftsbereichs eines Unternehmens. Wie zuvor erwähnt wurde, wird die Liste mit den gleichgestellten Agenten vom Einheitenkonfigurator-Server in der Konfigurationsdatenbank gespeichert. In der bevorzugten Ausführungsform wird die Liste mit den gleichgestellten Agenten für die ganze Konfiguration übergeben. Eine mögliche Variante wäre, dass die Liste mit den gleichgestellten Agenten pro Anwendung übergeben wird. Der nächste Schritt besteht darin, dass der Einheitenkonfigurator-Client eine Verbindung zu dem ersten Agenten in der Liste (230) herstellt, um seinen aktuellen Agenten-Konfigurationsdatensatz zu erhalten, wobei nach wie vor die Hash-Schlüssel verwendet werden. Wenn es zwischen den Agenten-Konfigurationsdatensätzen eine Übereinstimmung gibt (Antwort ”Ja” im Test 235), erhalten die Einheitenkonfigurations-Datensätze die benötigte Agenten-Konfiguration (240) und aktualisieren den Agenten mit dieser Konfiguration, indem sie genau so viele Unterelemente von Agenten installieren, wie die Anzahl der Programme, die für die Systemverwaltungs-Anwendung notwendig sind, die aber noch nicht installiert wurden, und indem sie alle für die Systemverwaltungs-Anwendung notwendigen Programme kundenspezifisch anpassen.
-
Es kann vorkommen, dass keines der verteilten Systeme in der Liste die Agenten-Konfiguration enthält, da sie nicht über die letzte aktuelle Konfiguration verfügen. Aus diesem Grund muss der Einheitenkonfigurator, bevor er die Agenten-Konfiguration von einem gleichgestellten System in der Liste erhält, prüfen, ob die Konfiguration des gleichgestellten Systems, auf das Bezug genommen wird, zuverlässig ist. In dem Fall, in dem kein gleichgestelltes System von der Liste über die aktuelle Konfiguration verfügt (Antwort ”Nein” im Test 245), wird die aktuelle Konfiguration vom Einheitenkonfigurator-Client beim Einheitenkonfigurator-Server angefordert, der nicht nur die Beschreibung von allen Agenten-Konfigurationen in der Konfigurationsdatenbank speichert, sondern auch auf alle Agenten-Konfigurationsdateien zugreifen kann. Aus diesem Grund ist der Einheitenkonfigurator-Server auf demselben Computer wie der Systemverwaltungs-Server (der Verwaltungsserver 105) installiert, der gegebenenfalls auch auf diese Agenten-Konfigurationsdateien zugreifen können muss.
-
Es sei angemerkt, dass neue Binärdateien mit der korrekten kundenspezifischen Anpassung, die im Konfigurationsdatensatz des Agenten beschrieben ist, installiert werden. In der bevorzugten Ausführungsform erfolgt diese Aktualisierung jedoch, indem die kundenspezifisch angepassten Binärdateien des gleichgestellten Agenten geklont werden. Gemäß den Lehren nach dem Stand der Technik ermöglicht das Klonen, wenn es auf die Datenspeicher-Subsysteme angewendet wird, eine Verringerung von Fehlern und eine Herabsetzung der Leistung während der Installation. In der bevorzugten Ausführungsform werden sowohl die Agenten-Kernelemente als auch die Unterelemente geklont; das Klonen findet statt, indem die einzelnen Teile der Daten von einem oder mehreren Agenten in der Liste heruntergeladen werden; die Teile können Konfigurationsdateien, Programmdateien (ausführbare Dateien, Skripte usw....) enthalten.
-
Der letzte Schritt besteht darin, dass der Einheitenkonfigurator-Client den Konfigurationsdatensatz des Agenten aktualisiert und ihn an den Einheitenkonfigurator-Server als den aktuellen Agenten-Konfigurationsdatensatz für diesen Agenten sendet; der Einheitenkonfigurator-Server speichert diese Informationen in der Konfigurationsdatenbank.
-
Es sei erwähnt, dass die Einheitenkonfigurator-Client-Anwendungen, die in den verteilten Systemen ausgeführt werden, die grundlegenden Übertragungsfunktionen des Agenten-Kernelements (170) nutzen können, um mit dem Einheitenkonfigurator-Server oder mit den Einheitenkonfigurator-Client-Anwendungen des gleichgestellten verteilten Systems Daten auszutauschen.
-
3 zeigt ein Beispiel eines Konfigurationsdatensatzes eines Agenten, der von dem Einheitenkonfigurator-Server in der Konfigurationsdatenbank gemäß der bevorzugten Ausführungsform verwaltet wird.
-
Der Konfigurationsdatensatz des Agenten ist die verkürzte Darstellung der Software-Konfiguration, in Bezug auf Programme und Programm-Parameter, um eine Systemverwaltungsfunktion auszuführen. Eine von einem Agenten ausgeführte Systemverwaltungsfunktion erfordert die Installation von einem entsprechenden Programm und dessen korrekte kundenspezifische Anpassung mit den korrekten Parametern. Es kann auch vorkommen, dass ein weiteres vorausgesetztes Programm installiert und kundenspezifisch angepasst werden muss. Ein anderer Fall ist der, in dem der Agent ein anderes vorausgesetztes Programm verwenden muss, das bereits installiert ist. Das andere vorausgesetzte Programm, das bereits installiert ist, erfordert gegebenenfalls jedoch eine andere kundenspezifische Anpassung. In diesem Fall müssen die neuen Parameter, die für diese kundenspezifische Anpassung verwendet werden, in dem Konfigurationsdatensatz beschrieben werden. In diesen beiden letztgenannten Fällen ist für die Installation der Systemverwaltungsfunktion des Agenten notwendig, dass ein zusätzlicher Konfigurationsdatensatz, der sich auf das zweite vorausgesetzte Programm bezieht, zur Verfügung gestellt wird.
-
Es sei angemerkt, dass die Programme, sobald sie installiert sind, jedem Konfigurationsdatensatz für die Unterelemente (180) entsprechen, die in Bezug auf 1 beschrieben wurden.
-
Die Konfigurationsdatensätze des Agenten werden vom Einheitenkonfigurator-Server gesteuert. Sie werden nach einer entsprechenden Maßnahme des IT-Administrators vom Einheitenkonfigurator-Server in der Konfigurationsdatenbank (150) gespeichert. In der Datenbank wird ein Konfigurationsdatensatz eines Agenten mittels einer Metasprache identifiziert.
-
Ein Konfigurationsdatensatz, der die Konfiguration einer bestimmten Systemverwaltungsfunktion beschreibt, umfasst die folgende Anweisung:
<Application>ApplicationName</Application>
wobei der Name der Anwendung der Name des Programms ist.
-
In dem restlichen Konfigurationsdatensatz wird unter der Anweisung <ConfigElement> der mindestens eine Satz von Parametern für die kundenspezifische Anpassung des Programms beschrieben. Diese Anweisung <ConfigElement> (300) kann einen Parameter-Dateinamen in der Anweisung <INIFile> umfassen. Der Satz von Parametern wird durch die folgende Anweisung <RecordElement> näher beschrieben, die weitere Informationen über die Parameter-Datei gibt, zum Beispiel die Dateigröße (Anweisung <FileSize>, das letzte Aktualisierungsdatum mit der Anweisung <LastUpdate> und die Anweisung <ContentIntrospection>, welche die Parameter-Liste ändert, indem sie angibt, welche(r) Parameter aus der Parameter-Datei entfernt werden soll(en) und/oder welche(r) Parameter in die Parameter-Datei aufgenommen werden soll(en). Eine Anweisung <ConfigElement> schließlich enthält einen Hash-Schlüssel, der auf der Grundlage des Inhalts des Datensatz-Elements berechnet wird, das von dem Einheitenkonfigurator-Client verwendet wird, um schnell zwei Konfigurationselemente in zwei verschiedenen Konfigurationsdatensätzen (215, 235) zu vergleichen. Mittels des Hash-Schlüssels kann der Einheitenkonfigurator-Client prüfen, ob die Anwendung installiert und in der in dem Konfigurationsdatensatz beschriebenen Art und Weise konfiguriert ist. Jedes Konfigurationselement enthält eine Anweisung <ConfigHash>, die den HASH-Wert bereitstellt. Jede beliebige, nach dem Stand der Technik bekannte Art von Algorithmus zur Berechnung des Hash-Schlüssels kann verwendet werden.
-
Ein weiterer Satz von Parametern (310) kann auch direkt von einem Satz von Parametern und dessen Wert unter der Anweisung
<ConfigParam name + value= >
angegeben werden, was ebenfalls in 3 gezeigt ist.
-
Ein Konfigurationsdatensatz enthält folglich Nachstehendes:
APPNAME...Element...142 54 5...
wobei 142545 der Hash-Wert einer ordnungsgemäß konfigurierten Anwendung auf einem bestimmten System ist. Die Einheitenkonfigurator-Client-Anwendung kann Konfigurationsdatensätze auswerten, erzeugen und berechnen, und sie kann prüfen, ob der empfangene Hash-Schlüssel gleich dem Hash-Schlüssel ist, der in dem Konfigurationsdatensatz empfangen wurde, welcher vom Einheitenkonfigurator-Server empfangen wurde.
-
Das erfindungsgemäße Verfahren wird vorzugsweise nicht von Hardware-Logik, sondern in Form von Computerprogrammen durchgeführt, die auf dem Computer des Systemverwaltungs-Servers und den verteilten Systemen betrieben werden. Es sei angemerkt, dass der Systemverwaltungs-Server und der Einheitenkonfigurator-Server vorzugsweise auf demselben Computer installiert sind oder aber auf verschiedenen Computern installiert werden können (ist das wahr?).
-
4 zeigt ein Beispiel eines Datensatzes einer Konfigurationsdatenbank, der von dem Einheitenkonfigurator-Server gemäß der bevorzugten Ausführungsform verwaltet wird. Die Konfigurationsdatenbank enthält Metadaten, die notwendig sind, um die Konfiguration eines Agenten abzurufen: alle Agenten mit ihren zugehörigen Daten. Diese Metadaten werden serverseitig von dem IT-Administrator aktualisiert (oder können automatisch von einem Programm erzeugt werden) und von der Einheitenkonfigurator-Client-Server-Anwendung verwendet.
-
Die Metadaten der Agenten (AGENT-Metadaten) enthalten die Liste der Agenten der verteilten Umgebung, die von dem Einheitenkonfigurator-Anwendungsserver bekannt sind. Die Agenten werden über ihre Netzwerkadresse oder eine beliebige Kennung, die den Daten der Maschine (des verteilten Systemcomputers oder der verteilten Einheit), zu denen auch die Netzwerkadresse gehört, 1:1 zugeordnet ist, identifiziert (AGENT_ID).
-
Ebenso enthalten die Metadaten der Agentengruppen (AGENT_GROUP-Metadaten) die Liste der Gruppen. Die Agenten werden entsprechend dem Agenten und der Organisationsstruktur des verteilten Systems, die von dem IT-Administrator gesteuert wird, zu Gruppen zusammengefasst: eine Gruppe kann ein Geschäftsbereich eines Unternehmens sein.
-
Die APPLICATION-Metadaten enthalten die Liste der Systemverwaltungs-Anwendungen, die die Agenten auf den verteilten Systemen gegebenenfalls ausführen müssen. Die APPLICATION ist Teil des Konfigurationsdatensatzes des Agenten, der bereits zuvor in dem Schriftstück mit Bezug auf die Beschreibung von 3 beschrieben wurde.
-
Die CONFIGURATION_ELEMENT-Metadaten enthalten Informationen, die es ermöglichen, die Konfigurationsinformationen (Programm, Programm-Parameter), die einer bestimmten Anwendung beigefügt sind, abzurufen. Das CONFIGURATION_ELEMENT ist Teil des Konfigurationsdatensatzes des Agenten, der bereits zuvor in dem Schriftstück mit Bezug auf die Beschreibung von 3 beschrieben wurde.
-
AGENT_GROUP_REL enthält die Beziehung zwischen einem Agenten und seiner Gruppe. AGENT_GROUP_REL besagt, welcher Agent zu welcher Gruppe gehört.
-
APPLICATION_GROUP_REL enthält die Beziehung zwischen der Anwendung (Application) und Gruppen (Groups) sowie das zu der aktuellen Konfiguration gehörende Konfigurationselement (Configuration Element). (Welche Anwendung auf welcher Gruppe installiert ist und den Verweis auf die aktuelle Anwendungskonfiguration).
-
Wenn der Einheitenkonfigurator-Client einen Konfigurationsdatensatz für einen bestimmten Agenten anfordert, sucht der Einheitenkonfigurator-Server nach den zugehörigen Gruppen. Für jede Anwendung, die auf diesen Gruppen installiert ist, wird eine Liste mit den Konfigurationselementen zurückgeschickt.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-