Software-Konfiguration verteilter Systeme
Expertensystem unterstützt Anwender bei der Installation
Der Funktionsvorrat verteilter heterogener Prozessleitsysteme ist fast unerschöpflich. Modular zu individuellen Systemen konfigurierbar, gilt es die Abhängigkeiten zwischen den Funktionsbausteinen zu beachten. Ein regelbasiertes Konfigurationsmanagement verhindert Inkonsistenzen und stellt den einwandfreien Betrieb des Gesamtsystems sicher.
Häufig sind komplexere Computersysteme als verteiltes heterogenes System aufgebaut. Auf den einzelnen, miteinander vernetzten Rechnern sind verschiedene Teilfunktionen installiert, die nur zusammen die Funktionalität des Gesamtsystems erbringen. Das führt zu systemischen Beziehungen zwischen diesen Teilfunktionalitäten, bei verteilten Systemen auch über Rechnergrenzen hinweg.
Die Zusammenstellung der Teilfunktionalitäten beschreibt die Systemkonfiguration. Werden in einer Systemkonfiguration sämtliche Beziehungsregeln zwischen allen Funktionalitäten erfüllt, ist die Konfiguration konsistent. Inkonsistente Systemkonfigurationen entstehen beispielsweise durch eine fehlende Teilfunktion im System, die eine andere Funktion benötigt, oder durch die Koexistenz zweier Teilfunktionen, die sich gegenseitig ausschließen. Inkonsistente Systemkonfigurationen können dabei eine Fehlfunktion des Gesamtsystems verursachen.
Die konsistente, plausible Konfiguration aller Systemfunktionalitäten unter Einhaltung aller Regeln ist daher eine wichtige Aufgabe des Konfigurationsmanagements in der Informationstechnologie. Letzteres ist mit Aufwand verbunden und birgt immer auch das Risiko menschlicher Fehler. Beides lässt sich durch einen regelbasierten und automatisierbaren Ansatz minimieren.
Die Lösung des ABB-Forschungszentrums in Ladenburg sieht vor, immer sämtliche Funktionalitäten auf allen Rechnern im System vorzuinstallieren - unabhängig davon, ob sie später tatsächlich genutzt werden oder nicht.
Beziehungsregeln gewährleisten Validität der Konfiguration
Allerdings bleiben sämtliche Funktionalitäten zunächst deaktiviert und die dazugehörenden Dienste, wie Programmdienste und ausführbare Dateien, werden nicht gestartet. Nach der Installation kann der Anwender das System individuell durch ein Expertensystem konfigurieren, das heißt, die gewünschten vorinstallierten Funktionalitäten aktivieren.
Das Expertensystem prüft dabei automatisch die Konsistenz der Systemkonfiguration auf Basis der Beziehungsregeln, die für die Systemfunktionalität definiert sind und immer erfüllt sein müssen.
Dabei beinhaltet die in der ABB-Forschung prototypisch entwickelte Lösung eine interne Prolog-Engine (Prolog ist eine deklarative Programmiersprache), um Regeln zu verifizieren und systematisch eine valide Konfiguration zu finden. Generell gibt es drei Arten von Beziehungsregeln:
Konzept des regelbasierten Konfigurations-managements verteilter heterogener Systeme: Hersteller definieren mit dem Funktionseditor allgemeingültige Konfigurationsregeln, auf deren Basis Anwender ihre Systeme mit dem Expertensystem zusammenstellen.
© ABBDa Funktionen auch über verschiedene Rechner verteilt sein können, kann bei den drei Regelarten zusätzlich unterschieden werden, ob eine Regel auf einen einzigen Rechner beschränkt oder im gesamten verteilten System erfüllt sein muss.
Zum Beispiel können sich zwei Funktionen auf demselben Rechner gegenseitig ausschließen, dürfen aber durchaus auf unterschiedliche Rechner vorhanden sein.
Mit einer solchen Ausschlussregel kann ein Anwender, der beide Funktionen in seinem System aktivieren möchte, durch das Expertensystem angehalten werden, diese nur auf unterschiedlichen Rechnern freizuschalten.
Beziehungsregeln müssen nicht unbedingt technisch bedingt sein; sie können auch „künstlich" definiert werden, beispielsweise, um aus Lizenzgründen den parallelen Betrieb von Funktionalitäten zu untersagen, auch wenn aus technischer Sicht diese Konfiguration funktionieren würde. Ebenso könnte der Hersteller darüber bestimmte Konfigurationen ausschließen, weil er diese bislang nicht formal getestet hat.
Konfigurationsregeln unabhängig von der Systemsoftware
Konfigurationsregeln beschreiben gültige Systemkonfigurationen im heterogenen verteilten Computersystem. Die Beschreibung aller Regeln kann beispielsweise in einer separaten XML-Datei erfolgen, die zusammen mit der Systemsoftware ausgeliefert wird.
Der Vorteil: Systemhersteller können Regeln ändern, ohne die Systemsoftware selbst neu erzeugen zu müssen. Dies ist insbesondere für die künstlich definierten Regeln von Nutzen, da deren Modifikation normalerweise keine Software-Änderung erfordert.
Die Entscheidung (Regeländerung), die Anzahl der unterstützten Clients im System von 20 auf 25 zu erhöhen, ist reine Definitionssache und erfordert keine Änderungen an der Clientsoftware. Die allgemeingültigen Konfigurationsregeln kann der Hersteller werksseitig einmalig für ein bestimmtes System-Release spezifizieren, beispielsweise in XML. Da das manuelle Editieren der XML-Dateien sehr aufwendig wäre, schlägt das hier vorgestellte Konzept einen speziellen „Funktionseditor" zur benutzerfreundlichen Eingabe der Regeln vor.
Dieses Tool generiert aus den beschriebenen Konfigurationsregeln anschließend automatisch maschinenlesbare XML-Dateien, die dann durch die Prolog-Engine des Expertensystems interpretiert werden. Mit dem Systemrelease werden dann neben den Softwarefunktionalitäten die dazugehörigen XML-Dateien mit den Konfigurationsregeln ausgeliefert.
Unterstützung für die Systemkonfiguration
Die XML-Daten dienen als Basis für das Expertensystem, ein neues verteiltes System aufzusetzen oder dessen Konfiguration zu ändern. Das Werkzeug prüft bei jeder gewünschten Konfigurationsänderung durch den Anwender, ob hierdurch Regeln verletzt werden. Falls nicht, führt das Werkzeug die gewünschte Änderung durch.
Auf Basis der allgemeingültigen Konfigurationsregeln prüft das Expertensystem, ob eine Regelverletzung auftritt.
© ABBErkennt das Werkzeug eine Regelverletzung durch eine beabsichtigte Konfigurationsänderung, weist es den Anwender mit einer entsprechenden Warnung darauf hin, beispielsweise so: „Der kombinierte Betrieb der ausgewählten Funktionalitäten wird im gleichen System nicht unterstützt" oder „Die maximale Anzahl unterstützter Clientrechner ist bereits erreicht".
Bei jeder Systeminstallation nimmt der Anwender zunächst eine Vollinstallation der Systemsoftware auf allen Rechnern vor, unabhängig davon, ob er plant, einzelne Systemfunktionalitäten tatsächlich zu nutzen oder nicht. Die Vollinstallation eines Systems wird anschließend durch Auswahl und Aktivierung einzelner Systemfunktionalitäten individuell konfiguriert.
Der Vorteil dieser Vorgehensweise ist eine intuitive Trennung zwischen Installation und Konfiguration: Der Anwender muss sich nicht bereits bei der Installation Gedanken machen, welche Funktionen er später benötigen wird. Zudem entfallen bei Konfigurationsänderungen nachträgliche Installationen. Mithilfe des Expertensystems wählt der Anwender aus der Menge vorinstallierter Systemfunktionalitäten die benötigen aus.
Das Expertensystem prüft auf Basis der in den XML-Dateien hinterlegten allgemeingültigen Konfigurationsregeln, ob Inkonsistenzen in der Systemkonfiguration entstehen.
`Prolog´ stellt Systemkonfigurationen sicher
Im hier vorgeschlagenen Konzept erfolgt diese Konsistenzprüfung durch einen Solver im Expertensystem, der als Prolog-Inferenzmaschine implementiert ist. Die Regeln aus den XML-Dateien werden in Prolog-Fakten und -Prädikate transferiert und dienen als Basis für den Inferenzprozess. Prolog ist eine deklarative Programmiersprache.
Der Prolog wurde entwickelt, um Lösungen für ein gegebenes Problem zu finden, das durch eine Menge von Fakten, Prädikaten und ihren Beziehungen beschrieben ist. Daher eignet sich Prolog ideal, um Konfigurationsregeln verteilter heterogener Systeme zu lösen und die Konsistenz von Systemkonfigurationen sicherzustellen.
Bei einer Regelverletzung erhält der Anwender eine Warnung. Analog dazu wird das Deaktivieren von Funktionalitäten kontrolliert. Bei einer erfolgreichen Konsistenzprüfung führt das Expertensystem die gewünschte Aktivierung oder Deaktivierung einer Funktionalität auf dem ausgewählten Rechner durch. Dazu stoppt oder startet das Tool die entsprechenden Dienste. Welche Dienste zu welcher Systemfunktionalität gehören, sind ebenfalls in den XML-Dateien spezifiziert.
Mittels der Kontrolle aller relevanten Konfigurationsregeln wird die Konsistenz der gesamten Systemkonfiguration verifiziert und als gültig beziehungsweise ungültig markiert. Das regelbasierte Expertensystem stellt somit die Konsistenz einer Systemkonfiguration automatisch sicher. Dies minimiert den Konfigurationsaufwand und die damit verbundenen Risiken.
Autoren: Marcel Dix ist wissenschaftlicher Mitarbeiter im Forschungsprogramm Industrial Software Systems am ABB Forschungszentrum in Ladenburg.
Sylvia Maczey ist wissenschaftliche Mitarbeiterin im Forschungsprogramm Industrial Software Systems am ABB Forschungszentrum in Ladenburg.
Chris M. Stich ist Leiter der Gruppe „Lifecycle Science" im Forschungsprogramm Industrial Software Systems am ABB Forschungszentrum in Ladenburg.












