Mobile Agenten am Beispiel JADE (Java Agent

Werbung
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
Herunterladen