Mobile Agenten am Beispiel JADE (Java Agent DEvelopment Framework) Vorstellung in der Übung zu Konzepte Verteilter Systeme
Mobile Agenten am Beispiel JADE(Java Agent DEvelopment Framework)
Vorstellung in der Übung zu Konzepte Verteilter Systeme
29.12.2005 Bergmann, Bewernik, Freisinger, Mesch, Müllender, Teichmann
2
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
3
Mobile Agenten
eigenständige Programmstrukturenwandern zwischen Rechnern (Knoten) im NetzwerkCode und Zustand werden migriertbenötigen Laufzeitsystem als Middleware, das sich um folgende Aspekte kümmert
KommunikationMigrationSicherheit…
29.12.2005 Bergmann, Bewernik, Freisinger, Mesch, Müllender, Teichmann
4
Warum Mobile Agenten?
Alternative zu Client-Server-KonzeptEinsparung von KommunikationskostenUnabhängigkeit von lokalen Ressourcenasynchrone AusführungFlexibilität der verteilten Architektur
SkalierbarkeitMigrationsfähigkeit
29.12.2005 Bergmann, Bewernik, Freisinger, Mesch, Müllender, Teichmann
5
Herausforderungen
SicherheitAuthentifizierungVertraulichkeit
Transportwie ermittelt/migriert man aktuellen Zustand?wie gelangt Code zu benötigten Daten?
Interoperabilitätwie kombiniert man verschiedene Computer Systeme (Unix, Windows, …)?
29.12.2005 Bergmann, Bewernik, Freisinger, Mesch, Müllender, Teichmann
6
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
7
JADE - Java Agent DEvelopment Framework
Middleware und Laufzeitumgebung für Multi-Agenten Systeme (MAS)
basiert auf Javastellt Middleware-Dienste und Laufzeitumgebung für Agenten zur Verfügungbietet Standardbibliotheken, die direkt oder erweitert zur Entwicklung von MAS verwendet werden könnenstellt grafische Tools zur administrativen Verwaltung/Debugging des MAS bereit
29.12.2005 Bergmann, Bewernik, Freisinger, Mesch, Müllender, Teichmann
8
JADE LaufzeitumgebungStruktur
ContainerInstanz einer JADE Laufzeitumgebungläuft jeweils in eigenem Java Prozesskann 0 bis n Agenten beinhalten
PlattformMenge an aktiven, zusammengehörenden Containernbeinhaltet 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
9
JADE LaufzeitumgebungZentrale Dienste
Kommunikationfindet standardisiert über ACL-Messages stattper Objekt Weitergabe (container-intern)per RMI (container-übergreifend)
AMS – Agent Management Systemals Agent implementiertstellt Namensdienst zur Verfügungrepräsentiert die verwaltende Autorität der Plattform (kann Agenten erstellen und beseitigen)
DF – Directory Facilitatorals Agent implementiertstellt 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
10
JADE LaufzeitumgebungBeispiel
29.12.2005 Bergmann, Bewernik, Freisinger, Mesch, Müllender, Teichmann
11
JADE Agenten ArchitekturVerhalten
Agent wird als Java Programm bestehend aus einem Thread implementiertVerhalten wird durch einzelne Tasks beschriebenTasks werden als Behaviour Objekte implementiert und dem Agenten hinzugefügtAktive Behaviour Objekte werden im round-robinVerfahren ausgeführt
29.12.2005 Bergmann, Bewernik, Freisinger, Mesch, Müllender, Teichmann
12
JADE Agenten ArchitekturStruktur
Agent erbt von jade.core.Agent
setup()Agenten InitialisierungBehaviours 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
13
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 BetriebssystemDie 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
14
Sicherheit in Jade
Autorisierung
Der Zugriff von Agenten auf Dienste einer Plattform oder Anwendungsressourcen kann mittels Regeln selektiv festgelegt werdenDefinition 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 geltenAlle 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
15
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
16
Migration in Jade
Agent wird per ACL-Messages migriertMigration Manager unterbricht Ausführung des Agenten und verpackt Status und Code in ACL-MessageClass Loader lädt den Byte-Code der Klasse aus ACL-Message in den Arbeitsspeicher
29.12.2005 Bergmann, Bewernik, Freisinger, Mesch, Müllender, Teichmann
17
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
18
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
19
AnwendungsfallRessourcen-Überwachung
„Resource-awareness“
Mobilität von Agenten ermöglicht Reaktion auf Ressourcen-Verfügbarkeit wie
Lokale SystemressourcenNetzwerkauslastungEreignisse und Dienste
Knappe Ressourcen sind möglicher Grund zu migrieren
29.12.2005 Bergmann, Bewernik, Freisinger, Mesch, Müllender, Teichmann
20
AnwendungsfallAgenten Lebenszyklus
29.12.2005 Bergmann, Bewernik, Freisinger, Mesch, Müllender, Teichmann
21
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
22
PrototypBeispiel
Präsentation Beispiel Implementierung
29.12.2005 Bergmann, Bewernik, Freisinger, Mesch, Müllender, Teichmann
23
Prototyp Source-Codesetup()
29.12.2005 Bergmann, Bewernik, Freisinger, Mesch, Müllender, Teichmann
24
29.12.2005 Bergmann, Bewernik, Freisinger, Mesch, Müllender, Teichmann
25
Prototyp Source-CodebeforeMove() & afterMove()
29.12.2005 Bergmann, Bewernik, Freisinger, Mesch, Müllender, Teichmann
26