Sprungmarken

Servicenavigation

Hauptnavigation

Sie sind hier:

Hauptinhalt

PG 488: MaTRICS Revolutions

Thema

Design und Entwicklung verteilter intelligenter Konfigurationssysteme

 

Motivation

„Ändern Sie mal eben schnell…“ – Fortwährende Änderungen an Geschäftsprozessen und ständig neu entstehende Technologien haben dynamische Server-Strukturen entstehen lassen, die zunehmend schwerer zu managen sind. Die Anwendungen und Geschäftsprozesse, die auf den Servern aufsetzen, sind heutzutage geschäftskritischer denn je. Welche Auswirkungen hat es, wenn ein Server, der hunderte Arbeitsplätze bedient, falsch konfiguriert ist?
Im Zeitalter der Zentralisierung sind Begriffe wie „On Demand“ oder „Server-based Computing“ von zentraler Bedeutung. In der Regel handelt es sich dabei um verteilte heterogene und komplexe Server-Umgebungen[8]. Der Bedarf steigt für ein sicheres und transparentes Management von verteilten Server-Systemen[10]. Dies ist umso wichtiger, wenn man bedenkt, dass ca. 80% der Server-Ausfälle durch Administrations- und Konfigurationsfehler verursacht werden.
MaTRICS[1] soll die Administratoren von der Komplexität der eingesetzten Server- und Softwaresysteme entlasten. Dabei wird der gesamte Lebenszyklus der Server-Systeme als auch deren Software-Konfiguration transparent überwacht und intelligent konfiguriert. Alle Installations- und Konfigurationsvorgänge sollten einfach und unterstützt durch einen personalisierten Agenten in einer Konfigurationsumgebung durchführbar sein.
Dabei sollen alle Aktivitäten an den Konfigurationsdateien und Prozessen der zu konfigurierenden Maschine analysiert werden, um auftretende Probleme beim Betrieb zu minimieren und eine erhöhte Verfügbarkeit der Server-Systeme zu garantieren.
Mit MaTRICS wollen wir eine einheitliche Konfigurationsumgebung entwickeln, die den Zugang über verschiedenste Kommunikationswege (Webfrontend, EMail, SMS, etc.) ermöglicht.
MaTRICS besteht aus 3 verteilten Komponenten, siehe Abb. 1: dem ConfigManager, den ConfigClients und den ConfigAgents. Die Akteure der MaTRICS sind die zu konfigurierenden Server.

  • Der Kern der MaTRICS ist der ConfigManager. Dieser realisiert die einzelnen Workflows zu den Administrations- und Konfigurationsvorgängen eines Servers in Form von Features und Diensten. Konflikte und Abhängigkeiten bei der Konfiguration eines Servers werden dabei vom ConfigManager intelligent erkannt und diagnostiziert.
  • ConfigAgents realisieren die verschiedenen Kommunikationswege: sie stellen die Schnittstelle zwischen Benutzer und dem ConfigManager dar.
  • Instanzen der ConfigClients realisieren die Schnittstelle zwischen Server und ConfigManager. Dabei steuert der zentrale ConfigManager die Akteure fern (remote management).
  • Die Kommunikation zwischen den einzelnen Komponenten erfolgt durch geeignete Protokolle [7].

Abbildung 1: Komponenten der MaTRICS
Abbildung 1: Komponenten der MaTRICS

Wegen der sich ständig ändernden Anforderungen an die Konfigurationsumgebung, kommt es zu folgenden Anforderungen an ein adäquates Design:

  • Modularität,
  • objektorientiertes Softwaredesign [3],
  • Rollen- und Feature-basierte Personalisierung,
  • flexible Anpassung der Ablaufsteuerung,
  • erweiterbare offene Protokolle [7].

Das in Kooperation mit dem Lehrstuhl V entstandene Agent Building Center (ABC) [4,5] ist für die Umsetzung derartiger Anforderungen konzipiert: eine graphische Entwicklungsumgebung unterstützt die Entwickler durchgängig in ihrem prozessorientierten, komponentenbasierten Softwaredesign.

 

Ziele

MaTRICS[1] stellt ein mächtiges Framework zur Konfigurationsverwaltung bereit. Im Rahmen des dritten Akts sollen grundlegende Konfigurationsdienste innerhalb des ConfigManagers modelliert werden. Diese werden in Form von Service Logic Graphen spezifiziert und trennen die konkrete Implementierung von der eigentlichen Anwendungs-Logik.
Dabei wird der Modellierungsprozess durch die Entwicklungsumgebung jABC[12]/EWIS optimal unterstützt. Der Extended Web Info Service (EWIS) ist eine Runtime Umgebung zur Entwicklung von personalisierten Internetdiensten auf Basis von Servlets.

ConfigAgents: sie sind spezialisierte Agenten zur Unterstützung der Menge an Kommunikationsmedien der MaTRICS zwischen dem Client auf Benutzerseite und dem ConfigManager. Ein rudimentärer WebAgent wurde bereits entwickelt. Dabei wurde die GUI in Form von HTML-Seiten starr an den Ausgabekanal gekoppelt. Eine am Lehrstuhl entwickelte Visualisierungs-Komponente auf Basis von XML erlaubt es, die Darstellung unabhängig von einem Ausgabeformat zu beschreiben. Mit Hilfe dieser Technologie sollen weitere ConfigAgents, wie beispielsweise der SMSAgent oder der EMailAgent entwickelt werden.

ConfigClient: er verarbeitet auf den Zielmaschinen die Aktionen, die vom ConfigManager initiiert wurden. ConfigClients sind daher relativ einfach gehalten: sie stellen eine Systembibliothek bereit, die einen Zugriff auf das Betriebssystem und die Prozesse der Zielmaschine ermöglichen. Im Vordergrund steht hier die Realisierung einer Systembibliothek für Linux Maschinen innerhalb des jABC. Dabei soll eine minimale Runtime-Umgebung entwickelt werden, die eine autonome Ausführung von Prozessen unabhängig vom ConfigManager ermöglicht.

ConfigManager: er ist das Bindeglied zwischen ConfigAgent und ConfigClient, und stellt somit den Kern der Konfigurationsumgebung der verteilten Serverprozesse dar. Seine Aufgaben sind:

  • Validierung aller Aktionen der ConfigAgents
  • Realisierung des Nutzer/Rollen Management
  • Bereitstellung aller Konfigurationsdienste
  • Delegation von Konfigurations-Aufträgen an die ConfigClients
  • Bereitstellung einer JobFlow-Engine für Konfigurations-Aufträge
  • Verwaltung und Versionierung von Konfigurationsdaten
  • Bereitstellung der Kommunikationsprotokolle

Momentan lassen sich Konfigurations-Aufträge über die JobFlow-Engine nur bedingt verwalten. Die JobFlow-Engine soll um eine universelle Management-Schnittstelle erweitert werden, die eine  Rekonfiguration von Jobs zur Laufzeit erlaubt.

Die Funktionalität der MaTRICS wird durch die Menge der Dienste des ConfigManagers festgelegt. Dazu baut der ConfigManager auf Technologien von Java Standard, wie CVS, JDBC, PostgreSQL) und Java Enterprise Services für JMX und JMS auf.
Im Rahmen der Projektgruppe sind zunächst noch fehlende Basiskomponenten, wie beispielsweise das AccessManagement zu entwickeln. Zunächst ist das jABC komponentenbasiert zur Erfüllung der verschiedenen Aufgaben zu erweitern. Desweiteren sollen verschiedene Konfigurationsdienste mit Hilfe der Basiskomponenten auf Service Logic Ebene designt werden. Es soll

  • Muster-basiert [9] vorgegangen werden, und zwar sowohl auf Architektur- als auch auf Prozessebene. Dabei ist der Begriff Muster nicht nur im engen Sinne von Gamma gemeint, sondern es werden beispielsweise auch informellere, konzeptuelle Architektur/Prozess-Strukturen und Vorgehensweisen für das betrachtete Anforderungsprofil behandelt.
  • Transparenz, Effizienz und Flexibilität garantiert werden. Hier ist eine Dienst- und Featureorientierte Vorgehensweise geplant, die konsequent die Spezifikation des „Was“ auf der Anwendungsebene von dem „Wie“ auf der Realisierungsebene trennt. Die von uns eingesetzte Methodik hat sich bereits im Telekommunikationsbereich sehr erfolgreich etabliert [4].

Diese Ziele sollen unabhängig voneinander, parallel angegangen werden.

 

Teilnahmevoraussetzungen

Erforderlich

  • Kenntnisse in der objektorientierten Programmiersprache Java
  • Teilnahme an mindestens einer der folgenden Lehrveranstaltungen: “Softwaretechnologie“, „Softwarekonstruktion“, “Theorie der Programmierung“ oder “Objektorientierte Modellierung“

Wünschenswert

  • Objektorientierte Modellierung (UML)
  • Kenntnisse im Bereich Computernetzwerke, vorzugsweise durch Teilnahme an einer entsprechenden Vorlesung wie „Rechnernetze und verteilte Systeme“, o.ä.
  • HTML-, WML-Kenntnisse
  • XML-Kenntnisse
  • PostgreSQL Datenbankkenntnisse
  • Fortgeschrittene Unix/Linux Kenntnisse

 

Zeitraum

Sommersemester 2006 und Wintersemester 2006/2007

 

Umfang

Jeweils 8 Semesterwochenstunden

 

Veranstalter

  • Prof. Dr. Bernhard Steffen
  • Dipl.-Inform. Markus Bajohr
  • Dipl. Ing. Martin Karusseit

 

Links zur Projektgruppe

  • Webseite der Projektgruppe

 

Literatur zur Projektgruppe

  1. 1. M. Bajohr, T. Margaria: MaTRICS: A Management Tool for Remote Intelligent Configuration of (Pervasive) Systems (ICPS 2005), IEEE Computer Society Press 2005
  2. 2. The Aspect-Oriented Programming Page at Xerox: http://www.parc.xerox.com/csl/projects/aop/overview.shtml.
  3. 3. Rational, Inc. : The Rational Suite description
  4. 4. B. Steffen, T. Margaria: METAFrame in Practice: Intelligent Network Service Design, In “Correct System
  5. 5. Design -- Issues, Methods and Perspectives”, Springer Verlag, 1999, pp.390-415.
  6. 6. B. Steffen, T. Margaria: Coarse-grain Component Based Software Development: The METAFrame
  7. 7. Approach, 3. Fachkongress ``Smalltalk und Java in Industrie und Ausbildung'' (STJA'97), 1997, Erfurt.
  8. 8. D. Comer: Computernetzwerke und Internets, Pearson Studium Verlag, 2002
  9. 9. A.S. Tanenbaum: Computer networks, Prentice Hall, 2003
  10. 10. A.S. Tanenbaum: Modern operating systems, Pearson Studium Verlag, 2003
  11. 11. E. Gamma: Design patterns, Addision-Wesley Verlag, 2000
  12. 12. G.Piccinelli, W.Emmerich, S.L.Williams, M.Sterans: A Modeldriven Architecture for Electronic Service
  13. 13. Management System, Int. conf on Service Oriented Computing, (CSOC´2003), LNCS 2910, 2003.
  14. 14. J. Cameron: Managing Linux Systems with Webmin, Prentice Hall, 2003
  15. 15. The jABC Framework: http://jabc.cs.uni-dortmund.de.


Nebeninhalt

 

Kontakt

Tel. (0231) 755-5801
Fax (0231) 755-5802