Mobile Agenten am Beispiel JADE (Java Agent DEvelopment Framework) Vorstellung in der Übung zu Konzepte Verteilter Systeme Agenda Mobile Agenten allgemein JADE - Java Agent DEvelopment Framework Anwendungsfall mobiler Agenten Prototypische JADE-Implementierung 29.12.2005 Bergmann, Bewernik, Freisinger, Mesch, Müllender, Teichmann 2 Mobile Agenten eigenständige Programmstrukturen wandern zwischen Rechnern (Knoten) im Netzwerk Code und Zustand werden migriert benötigen Laufzeitsystem als Middleware, das sich um folgende Aspekte kümmert ÑKommunikation ÑMigration ÑSicherheit Ñ… 29.12.2005 Bergmann, Bewernik, Freisinger, Mesch, Müllender, Teichmann 3 Warum Mobile Agenten? Alternative zu Client-Server-Konzept Einsparung von Kommunikationskosten Unabhängigkeit von lokalen Ressourcen asynchrone Ausführung Flexibilität der verteilten Architektur ÑSkalierbarkeit ÑMigrationsfähigkeit 29.12.2005 Bergmann, Bewernik, Freisinger, Mesch, Müllender, Teichmann 4 Herausforderungen Sicherheit ÑAuthentifizierung ÑVertraulichkeit Transport Ñwie ermittelt/migriert man aktuellen Zustand? Ñwie gelangt Code zu benötigten Daten? Interoperabilität Ñwie kombiniert man verschiedene Computer Systeme (Unix, Windows, …)? 29.12.2005 Bergmann, Bewernik, Freisinger, Mesch, Müllender, Teichmann 5 Agenda Mobile Agenten allgemein JADE - Java Agent DEvelopment Framework Anwendungsfall mobiler Agenten Prototypische JADE-Implementierung 29.12.2005 Bergmann, Bewernik, Freisinger, Mesch, Müllender, Teichmann 6 JADE - Java Agent DEvelopment Framework Middleware und Laufzeitumgebung für Multi-Agenten Systeme (MAS) Ñbasiert auf Java Ñstellt Middleware-Dienste und Laufzeitumgebung für Agenten zur Verfügung Ñbietet Standardbibliotheken, die direkt oder erweitert zur Entwicklung von MAS verwendet werden können Ñstellt grafische Tools zur administrativen Verwaltung/Debugging des MAS bereit 29.12.2005 Bergmann, Bewernik, Freisinger, Mesch, Müllender, Teichmann 7 JADE Laufzeitumgebung Struktur Container ÑInstanz einer JADE Laufzeitumgebung Ñläuft jeweils in eigenem Java Prozess Ñkann 0 bis n Agenten beinhalten Plattform ÑMenge an aktiven, zusammengehörenden Containern Ñbeinhaltet einen Main-Container, der notwendige plattform-spezifische Dienste zur Verfügung stellt und bei dem alle weiteren Container registriert werden 29.12.2005 Bergmann, Bewernik, Freisinger, Mesch, Müllender, Teichmann 8 JADE Laufzeitumgebung Zentrale Dienste Kommunikation Ñ findet standardisiert über ACL-Messages statt Ñ per Objekt Weitergabe (container-intern) Ñ per RMI (container-übergreifend) AMS – Agent Management System Ñ als Agent implementiert Ñ stellt Namensdienst zur Verfügung Ñ repräsentiert die verwaltende Autorität der Plattform (kann Agenten erstellen und beseitigen) DF – Directory Facilitator Ñ als Agent implementiert Ñ stellt einen Yellow Pages Dienst zur Verfügung (ordnet Beschreibung des angebotenen Dienstes einem Agent Identifier zu) Beide Agenten (AMS & DF) laufen im Main-Container und werden beim Start der Laufzeitumgebung mitgestartet 29.12.2005 Bergmann, Bewernik, Freisinger, Mesch, Müllender, Teichmann 9 JADE Laufzeitumgebung Beispiel 29.12.2005 Bergmann, Bewernik, Freisinger, Mesch, Müllender, Teichmann 10 JADE Agenten Architektur Verhalten Agent wird als Java Programm bestehend aus einem Thread implementiert Verhalten wird durch einzelne Tasks beschrieben Tasks werden als Behaviour Objekte implementiert und dem Agenten hinzugefügt Aktive Behaviour Objekte werden im round-robin Verfahren ausgeführt 29.12.2005 Bergmann, Bewernik, Freisinger, Mesch, Müllender, Teichmann 11 JADE Agenten Architektur Struktur Agent erbt von jade.core.Agent setup() Ñ Agenten Initialisierung Ñ Behaviours werden hinzugefügt doMove(Location loc) Ñ Agenten Migration beforeMove() Ñ Ausführung vor Migration zu anderer Location afterMove() Ñ Ausführung sobald die Ziel-Location erreicht wurde 29.12.2005 Bergmann, Bewernik, Freisinger, Mesch, Müllender, Teichmann 12 Sicherheit in Jade Authentifizierung Ñ JADE verfügt über einen Authentifizierungsmechanismus basierend auf der Java Authentication and Authorization Service API (JAAS) «Implementiert werden Login Module für Unix, NT, Kerberos «Die Unix und NT Module beziehen die Identität des Benutzers aus dem Betriebssystem «Die Funktionalität des Kerberos Moduls ist unabhängig vom System, das Modul an sich muss jedoch systemspezifisch konfiguriert werden 29.12.2005 Bergmann, Bewernik, Freisinger, Mesch, Müllender, Teichmann 13 Sicherheit in Jade Autorisierung Ñ Der Zugriff von Agenten auf Dienste einer Plattform oder Anwendungsressourcen kann mittels Regeln selektiv festgelegt werden Ñ Definition der Regeln erfolgt durch ein auf JAAS aufbauendes, erweitertes Policy Model: «In der Policy Datei des Main-Containers werden Berechtigungen definiert, die für die ganze Plattform gelten «Alle anderen Container können eigene Policy Dateien enthalten mit - Berechtigungen die nur für den jeweiligen Container gelten - Berechtigungen die den Zugriff auf lokale Ressourcen regeln 29.12.2005 Bergmann, Bewernik, Freisinger, Mesch, Müllender, Teichmann 14 Sicherheit in Jade Integrität Ñ Überprüfung der Integrität von Nachrichten und der Identität des Absenders mit Hilfe von Signaturen (SHA-1, MD5) Vertraulichkeit Ñ Schutz von Nachrichten vor unbefugtem Mitlesen durch Verschlüsselung «Asymmetrische Verschlüsselung (RSA, DSA, …) «Symmetrische Verschlüsselung (AES, DES, TripleDES, Blowfish, …) 29.12.2005 Bergmann, Bewernik, Freisinger, Mesch, Müllender, Teichmann 15 Migration in Jade Agent wird per ACL-Messages migriert Migration Manager unterbricht Ausführung des Agenten und verpackt Status und Code in ACL-Message Class Loader lädt den Byte-Code der Klasse aus ACLMessage in den Arbeitsspeicher 29.12.2005 Bergmann, Bewernik, Freisinger, Mesch, Müllender, Teichmann 16 Interoperabilität plattform- & herstellerunabhängig, da JADE in Java geschrieben Nachrichtentransport über gängige Protokolle: RMI, HTTP, IIOP ÑAuch beliebig um weitere Protokolle erweiterbar Kompatibilität zu anderen MAS durch Implementierung der FIPA-Spezifikationen und der verwendung ACL-konformer Nachrichten 29.12.2005 Bergmann, Bewernik, Freisinger, Mesch, Müllender, Teichmann 17 Agenda Mobile Agenten allgemein JADE - Java Agent DEvelopment Framework Anwendungsfall mobiler Agenten Prototypische JADE-Implementierung 29.12.2005 Bergmann, Bewernik, Freisinger, Mesch, Müllender, Teichmann 18 Anwendungsfall Ressourcen-Überwachung „Resource-awareness“ ÑMobilität von Agenten ermöglicht Reaktion auf Ressourcen-Verfügbarkeit wie «Lokale Systemressourcen «Netzwerkauslastung «Ereignisse und Dienste ÑKnappe Ressourcen sind möglicher Grund zu migrieren 29.12.2005 Bergmann, Bewernik, Freisinger, Mesch, Müllender, Teichmann 19 Anwendungsfall Agenten Lebenszyklus 29.12.2005 Bergmann, Bewernik, Freisinger, Mesch, Müllender, Teichmann 20 Agenda Mobile Agenten allgemein JADE - Java Agent DEvelopment Framework Anwendungsfall mobiler Agenten Prototypische JADE-Implementierung 29.12.2005 Bergmann, Bewernik, Freisinger, Mesch, Müllender, Teichmann 21 Prototyp Beispiel Präsentation Beispiel Implementierung 29.12.2005 Bergmann, Bewernik, Freisinger, Mesch, Müllender, Teichmann 22 Prototyp Source-Code setup() 29.12.2005 Bergmann, Bewernik, Freisinger, Mesch, Müllender, Teichmann 23 29.12.2005 Bergmann, Bewernik, Freisinger, Mesch, Müllender, Teichmann 24 Prototyp Source-Code beforeMove() & afterMove() 29.12.2005 Bergmann, Bewernik, Freisinger, Mesch, Müllender, Teichmann 25 29.12.2005 Bergmann, Bewernik, Freisinger, Mesch, Müllender, Teichmann 26