Sprungmarken

Servicenavigation

Hauptnavigation

Sie sind hier:

Hauptinhalt

PG 519: SOS for MaTRICS - Service Orchestration Systems for MaTRICS

 

Thema

Design und Entwicklung verteilter intelligenter Konfigurationssysteme

 

Motivation

Internettechnologien haben sich in der heutigen Zeit in sofern verändert, dass komplexe Dienste aus kleineren eigenständigen Applikationen bestehen können. Dabei basieren diese einzelnen Komponenten immer mehr auf der Technologie von Web-Services [8], die einerseits standalone über einen Browser, aber auch von anderen Applikationen mittels ihrer WSDL-Spezifikation [6] aufgerufen werden können.

Dadurch entsteht eine Infrastruktur von Diensten, die nicht mehr alle Funktionalitäten in sich bereitstellen, sondern eine Art Baukasten, aus dem ein komplexer Geschäftsprozess komponiert wird. Dabei spricht man von Orchestrierung [5,7], die im Wesentlichen die Aufgabe eines „Steuerbusses“ in einer serviceorientierten Systemarchitektur hat, wobei die Kontext- und Kontrollflüsse verteilter Geschäftsprozesse gesteuert werden. Eine sequenzielle, bedingte, parallele oder zeitbezogene Ausführung sowie andere Abhängigkeiten können über orchestrierte Web-Services definiert werden.

Wir betrachten nicht nur Web-Services im klassischen Sinne, die i.d.R. Datenmanipulation durchführen, sondern insbesondere das Management von verteilten Systemen die über eine Web-Schnittstelle verfügen. Als Beispiel für einen verteilten Geschäftsprozess kann die Konfiguration und Steuerung eines modernen Bürogebäudes betrachtet werden, wobei die einzelnen Komponenten (EiB, VoIP-Switches, Network-Switches und Routers, etc.) über Web-Interfaces separat ansprechbar sind, aber nicht ohne Hilfsmittel miteinander kombiniert werden können. Ein Szenario könnte u.a. die Benachrichtigung eines Hausmeisters via Telefon sein, wenn bei plötzlichem Regeneinfall ein Fenster im Gebäude geöffnet ist. Dabei stellen die VoIP-PABX und die Gebäude-Leittechnik jeweils einen Web-Service dar, die mittels Orchestrierung diesen Anwendungsfall umsetzen.

Für die Verwaltung und Konfiguration derartiger Geschäftsprozesse werden Systeme benötigt, die ein Management von verteilten Systemen auf einfachste Weise unterstützen. MaTRICS [2,3] ist ein Framework zur einheitlichen Konfiguration und Verwaltung von komplexen verteilten Serverumgebungen, das den Zugang über verschiedenste Kommunikationswege (Webfrontend, EMail, SMS, etc.) ermöglicht.

 

Was ist MaTRICS? 

 

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.

  • 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). SOS for MaTRICS http://matrics.cs.2 uni-dortmund.de/SOS

 

Schematischer Aufbau der MaTRICS:

MATRICS

 

Im Folgenden wird die Arbeitsweise der MaTRICS anhand der webbasierten Konfiguration eines Apache Servers veranschaulicht:

1. Benutzer authentifiziert sich mittels Web Browser beim WebAgent, welcher zur Klasse der ConfigAgents gehört und den Zugang für das Medium HTTP realisiert.

2. Der WebAgent kodiert die Authentifizierungsdaten in ein einheitliches Format und leitet sie via MMP zur weiteren Verarbeitung zum ConfigManager.

3. Die Schaltzentrale der MaTRICS, der ConfigManager, stellt mittels Nutzer/Rollen Management die jeweiligen Features für den Benutzer bereit und kapselt diese via MMP.

4. Die Generierung einer HTML Seite zur Auswahl eines Features erfolgt mit Hilfe der Daten vom ConfigManager beim WebAgent . Der Benutzer wählt ein Feature, beispielsweise „Configure Apache“.

5. Der Request wird vom WebAgent angenommen und via MMP an den ConfigManager geschickt.

6. Der Configuration Workflow „Configure Apache“ wird vom ConfigManager gestartet. Im ersten Schritt werden aus der Datenbank die ConfigClients gelesen, auf denen ein Apache installiert ist.

7. Übertragung der ConfigClients via MMP zum WebAgent und Generierung einer HTML Seite.

8. Der Benutzer selektiert die zu konfigurierende Maschine.

9. Der Request wird vom WebAgent via MMP zum ConfigManager gereicht. Damit beginnt der zweite Schritt des Configuration Workflow. Mit Hilfe der Auswahl des ConfigClients wird die aktuelle Konfigurationsdatei „httpd.conf“ für diese Maschine vom CVS-Server ausgecheckt.

10. Im dritten Schritt wird die „httpd.conf“ validiert und aus der aktuellen Konfiguration werden vom WebAgent die entsprechenden HTML-Seiten für die webbasierte Konfiguration erstellt.

11. Der Benutzer führt die Konfiguration im Browser durch. Dabei wird jeder Request vom WebAgent via MMP zum ConfigManager geschickt und vom Configuration Feature verarbeitet und validiert. Sobald der Benutzer die Konfiguration abgeschlossen hat, wird aus dieser im ConfigManager eine entsprechende „httpd.conf“ erstellt und im CVS-Server eingecheckt.

12. Die neue Konfiguration wird in die JobFlow-Engine des ConfigManagers eingereiht.

13. Die JobFlow-Engine vearbeitet den Apache-Konfigurations-Auftrag und überträgt die „httpd.conf“ via MCP zum entsprechenden ConfigClient. Wegen der sich ständig ändernden Anforderungen an die Konfigurationsumgebung, kommt es zu folgenden Anforderungen an ein adäquates Design:

  • Service Oriented Architecture (SOA) [8],
  • Modularität,
  • objektorientiertes Softwaredesign,
  • Rollen- und Feature-basierte Personalisierung [4],
  •  flexible Anpassung der Ablaufsteuerung [1,13],
  •  erweiterbare offene Protokolle [11].

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

 

 

Ziele

Mittels Service Orchestrierung möchten wir grundlegende eigenständige Systeme [12], wie beispielsweise Network/VoIP Switches mit anderen Web-Services koppeln, um daraus Geschäftsprozesse höherer Ordnung zu modellieren. Dabei betrachten wir solche Systeme als BlackBox, die ausschließlich über ihre WSDL-Spezifikation angesprochen werden können.

MaTRICS stellt dabei ein Meta-Konfigurationstool dar, das komplexe Konfigurationen an die orchestrierten Teilssysteme weiterdelegiert. 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 möchten wir einen Dienst entwickeln, der mittels Orchestrierung eine VoIPPABX (Siemens HiPath, Asterisk) ansteuert und beispielsweise die Funktionalitäten einer Groupware eines Fremdanbieters ausnutzt um eine Telefonkonferenz mit den beteiligten Teilnehmern zu schalten. Dazu soll ein allgemeines Framework entstehen, das beliebige Web-Services miteinander kombiniert: Orchestrierung von Web-Services (Framework): Die Orchestrierung einzelner Web-Services lässt sich mit Hilfe von gerichteten Graphen modellieren. Dabei realisieren die Knoten den Zugriff auf die jeweiligen Adapter der Web-Services und die Kanten repräsentieren die Ablaufsteuerung zwischen den einzelnen Diensten. Die Kommunikation zwischen MaTRICS und dem Framework soll auf Basis von Inter Process Communication (IPC) erfolgen. Dieses Framework ist mittels des jABC umzusetzen, das bereits alle benötigten Komponenten zur Entwicklung von serviceorientierten Diensten bereitstellt. Adapterschnittstellen: Hier soll eine Softwarekomponente entstehen, die mittels WSDL-Spezifikation den Zugriff auf externe Dienste über MaTRICS ermöglicht. Dabei sollen die Adapter auf Basis des serviceorientierten Designs [1] entwickelt werden. Somit lassen sich die Workflows verschiedener Dienste zu einer Einheit miteinander verschmelzen, die sich in der MaTRICS als geschlossenes System repräsentieren.

Plugin-Konzept: Die Kommunikation mit dem ConfigManager erfolgt ausschließlich über das MaTRICS Manager Protocol (MMP), das sich aber nicht von anderen Web-Services einbinden lässt. Die einzelnen Komponenten und Dienste der MaTRICS sollen als eine Art Plugin mit Hilfe einer WSDL-Spezifikation modelliert werden, so dass diese Komponenten von verschiedensten anderen Web-Services benutzt werden können. Dabei erfolgt der Zugriff über einen spezialisierten ConfigAgent, der die Dienste von MaTRICS mittels der WSDL-Spezfikation in Form von SOAP-Nachrichten [16] exportiert.

 

Minimalziel

  • Modellierung von Konfigurationsdiensten, die in MaTRICS bereitgestellt werden

  •  Entwicklung eines SOAP basierten ConfigAgent
  • Entwicklung eines Frameworks zur Orchestrierung von Web-Services
  • Modellierung von Adapterschnittstellen für verschiedene Systeme, wie Siemens HiPath, Sun ILOM/ALOM, Allied Telesyn Switches, etc.

 

 

 

Teilnahmevoraussetzungen

Erforderlich
  • Kenntnisse in der objektorientierten Programmiersprache Java
  • Grundlegende Kenntnisse in dem Gebiet Software-Design/Implementierung durch Teilnahme an
    mindestens einer entsprechenden Vorlesung wie ”Softwarekonstruktion”, ”Formale Methoden des Systementwurfs”, ”Übersetzerbau”
Wünschenswert
  • Objektorientierte Modellierung (UML)
  • Kenntnisse im Bereich Computernetzwerke, vorzugsweise durch Teilnahme an einer entsprechenden Vorlesung wie „Rechnernetze und verteilte Systeme“, „Rechnernetzanwendungen“ „Sicherheit im Netz“, o.ä.
  • HTML-, XML-Kenntnisse
  • Kenntnisse im Bereich J2EE (JSP, EJB)
  • PostgreSQL Datenbankkenntnisse
  • Fortgeschrittene Unix/Linux Kenntnisse

 

Zeitraum

Wintersemester 2007/2008 und Sommersemster 2008

 

Umfang

Jeweils 8 Semesterwochenstunden

 

Veranstalter

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

 

Literatur zur Projektgruppe

1. M. Bajohr, T. Margaria, B. Steffen: Service Based Enabling Service Availibility in the MaTRICS: Model- Driven Approach, Proc. ISOLA 2006, Cyprus, November 2006

2. M. Bajohr, T. Margaria: MaTRICS: A Service-Based Management Tool for Remote Intelligent Configuration of Systems, ISSE, Vol.2 N.2, pp.99-111, Springer London, July 2005.

3. M. Bajohr, T. Margaria: MaTRICS: A Management Tool for Remote Intelligent Configuration of (Pervasive) Systems (ICPS 2005), IEEE Computer Society Press 2005

4. M. Karusseit, T. Margaria: A Web-based Runtime-Reconfigurable Role Management Service, Proc. WWV’06, Cyprus, November 2006

5. W. Sadiq, F. Racca, M. Hammer: Business Services Orchestration: The Hypertier of Information Technology, Cambridge University Press (February 3, 2003)

6. W3C: Web Services Description Language (WSDL) Version 2.0 Part 1: Core Language, W3C, January 2006

7. S. Weerawarana: Web Services platform architecture, Prentice Hall PTR 2006

8. W. Dostal: Service-orientierte Architekturen mit Web Services, Spektrum Akad.Verlag, 2005

9. The Aspect-Oriented Programming Page at Xerox

10. B. Steffen, T. Margaria: METAFrame in Practice: Intelligent Network Service Design, In “Correct System Design -- Issues, Methods and Perspectives”, Springer Verlag, 1999, pp.390-415.

11. A.S. Tanenbaum: Computer networks, Prentice Hall, 2003

12. A.S. Tanenbaum: Modern operating systems, Pearson Studium Verlag, 2003

13. G.Piccinelli, W.Emmerich, S.L.Williams, M.Sterans: A Modeldriven Architecture for Electronic Service Management System, Int. conf on Service Oriented Computing, (CSOC´2003), LNCS 2910, 2003.

14. The jABC Framework: http://jabc.cs.uni-dortmund.de.

15. B. Steffen, T. Margaria, R. Nagel, S. Jörges, C. Kubczak: Model-Driven Development with the jABC, Proc. HVC’06 LNCS Springer Verlag, Oktober 2006

16. Aaron E. Walsh, ed.: UDDI, SOAP, and WSDL, Prentice Hall PTR 2002, ISBN 0-13-085726-2



Nebeninhalt

 

Kontakt

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