72
1 Was sind Was sind Aglets? Aglets? Seminar „Software Agenten“ Seminar „Software Agenten“ Vortrag von Tatjana Tschupin Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

Embed Size (px)

Citation preview

Page 1: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

1

Was sind Aglets?Was sind Aglets?

Seminar „Software Agenten“Seminar „Software Agenten“Vortrag von Tatjana Tschupin Vortrag von Tatjana Tschupin

und Sergej Lewinund Sergej Lewin

Page 2: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

2

Überblick Überblick Überblick Überblick

EinführungEinführung Basiskomponenten des AgletsystemsBasiskomponenten des Agletsystems Aglet, Aglets Lebenszyklus und ContextAglet, Aglets Lebenszyklus und Context Aglets MessagingAglets Messaging Aglets FrameworkAglets Framework

Page 3: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

3

Was sind Aglets?Was sind Aglets?Was sind Aglets?Was sind Aglets?

Aglets sind Java-Objekte, die sich von Host zu Aglets sind Java-Objekte, die sich von Host zu Host bewegen können. Sie können ihre Host bewegen können. Sie können ihre Ausführung jederzeit anhalten, sich zu einem Ausführung jederzeit anhalten, sich zu einem anderen Host bewegen und dort die Ausführung anderen Host bewegen und dort die Ausführung fortsetzen. fortsetzen.

Page 4: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

4

Aglet Programming Interface (API)Aglet Programming Interface (API)Aglet Programming Interface (API)Aglet Programming Interface (API)

Eine Bibliothek von Klassen und InterfacesEine Bibliothek von Klassen und Interfaces

Wurde vom IBM Tokyo Forschungslaboratorium Wurde vom IBM Tokyo Forschungslaboratorium in Japan entwickelt, um eine einheitliche in Japan entwickelt, um eine einheitliche Plattform für mobile Agentensysteme zu Plattform für mobile Agentensysteme zu schaffen.schaffen.

Page 5: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

5

Aglet Software Development Kit Aglet Software Development Kit (ASDK)(ASDK)

Aglet Software Development Kit Aglet Software Development Kit (ASDK)(ASDK)

www.trl.ibm.com/agletswww.trl.ibm.com/aglets (Download) (Download)

basiert sich auf Java 1. 1. x. und funktioniert nicht mit Java basiert sich auf Java 1. 1. x. und funktioniert nicht mit Java 1.2 oder höher. 1.2 oder höher.

www.sourceforge.comwww.sourceforge.com (eine Version für Java 1.2) (eine Version für Java 1.2)

alle Ausführungen in diesem Vortrag basieren sich auf Java alle Ausführungen in diesem Vortrag basieren sich auf Java 1.1.x. 1.1.x.

Page 6: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

6

TahitiTahiti

ASDK enthält auch einen Agentenplattform Tahiti, die ASDK enthält auch einen Agentenplattform Tahiti, die auf Basis von sogenannten Server-API entwickelt wurde auf Basis von sogenannten Server-API entwickelt wurde und Tahiti ermöglicht bequemes Management von und Tahiti ermöglicht bequemes Management von AgentenAgenten

Page 7: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

7

Basiskomponenten des AgletsystemsBasiskomponenten des AgletsystemsBasiskomponenten des AgletsystemsBasiskomponenten des Agletsystems Aglet.Aglet. Ein Ein AgletAglet ist ein mobiles Java-Objekt, das sich zwischen Hosts bewegen kann ist ein mobiles Java-Objekt, das sich zwischen Hosts bewegen kann.. ProxyProxy. Ein . Ein Proxy Proxy repräsentiert einen Vertreter eines Aglets und dient als Schutzschildrepräsentiert einen Vertreter eines Aglets und dient als Schutzschild . .

Schirmt Schirmt die die publicpublic-Methoden eines Aglets vor einem direkten Zugriff durch andere -Methoden eines Aglets vor einem direkten Zugriff durch andere Aglets ab Aglets ab

Versteckt den tatsächlichen Aufenthaltsort des Aglets (Versteckt den tatsächlichen Aufenthaltsort des Aglets ( location transparencylocation transparency))

Client ProxyProxy AgletAgletInteraktion

Page 8: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

8

Basiskomponenten des AgletsystemBasiskomponenten des AgletsystemBasiskomponenten des AgletsystemBasiskomponenten des Agletsystem

ContextContext. Ein. Ein Context Context ist die Arbeitsumgebung eines Aglets und ist die Arbeitsumgebung eines Aglets und stellt eine Reihe von Diensten zur Verfügung, z.B:stellt eine Reihe von Diensten zur Verfügung, z.B: Ein Aglet wird von einem Context erzeugtEin Aglet wird von einem Context erzeugt Der Context enthält die Informationen über alle in ihm Der Context enthält die Informationen über alle in ihm

laufenden Agletslaufenden AgletsEin Host kann mehrere Contexts enthalten und jeder ContextEin Host kann mehrere Contexts enthalten und jeder Context ist durch die Kombination von ist durch die Kombination von ServeradresseServeradresse und seinem und seinem NamenNamen bestimmt. bestimmt.

Identifier.Identifier. Er ist während des ganzen Lebenszyklusen des Aglets Er ist während des ganzen Lebenszyklusen des Aglets eindeutig.eindeutig.

Page 9: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

9

Das VerhaltensmodellDas VerhaltensmodellDas VerhaltensmodellDas Verhaltensmodell

Das Modell von einem Aglet wurde durch die Analyse von „Leben“ und „Tod“ eines Das Modell von einem Aglet wurde durch die Analyse von „Leben“ und „Tod“ eines mobilen Aglets entwickelt. mobilen Aglets entwickelt.

Es gibt nur zwei Wege, ein Aglet ins Leben zu rufen: Es gibt nur zwei Wege, ein Aglet ins Leben zu rufen: Man kann ein neues Aglet-Objekt erzeugen Man kann ein neues Aglet-Objekt erzeugen (Creation)(Creation) Es wird von einem existierenden Aglet geklont Es wird von einem existierenden Aglet geklont (Cloning)(Cloning)

Um die Aglets zu kontrollieren, kann man sie zerstören Um die Aglets zu kontrollieren, kann man sie zerstören (Disposal).(Disposal). Aglets sind auf zwei verschiedene Weise mobil:Aglets sind auf zwei verschiedene Weise mobil:

AktivAktiv PassivPassiv

Die Aglets können vorübergehend „einschlafen“, um bestimmte Ressourcen Die Aglets können vorübergehend „einschlafen“, um bestimmte Ressourcen freizugeben freizugeben (Deactivation) (Deactivation) und können später zum Laufen gebracht werden und können später zum Laufen gebracht werden (Activation). (Activation).

Die Aglets können Informationen austauschen, um eine vorgegebene Aufgabe zu Die Aglets können Informationen austauschen, um eine vorgegebene Aufgabe zu erfüllen (Messaging).erfüllen (Messaging).

Page 10: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

10

Hauptoptionen eines Aglets Hauptoptionen eines Aglets Hauptoptionen eines Aglets Hauptoptionen eines Aglets

Creation. Creation. Ein Aglet bekommt einen Identifier, wird in Ein Aglet bekommt einen Identifier, wird in einen Context eingefügt und initialisiert.einen Context eingefügt und initialisiert.

CloningCloning. Es wird eine fast gleiche Kopie des originalen . Es wird eine fast gleiche Kopie des originalen Aglets im selbem Context produziert. Es gibt zwei Aglets im selbem Context produziert. Es gibt zwei Unterschiede: Unterschiede: seine eigene ID seine eigene ID seine eigene Ausführungthreadsseine eigene Ausführungthreads

DispatchingDispatching. Das Aglet wird von seinem aktuellen . Das Aglet wird von seinem aktuellen Context entfernt und in den Ziel-Context eingefügt. Context entfernt und in den Ziel-Context eingefügt.

Page 11: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

11

Hauptoptionen eines Aglets Hauptoptionen eines Aglets Hauptoptionen eines Aglets Hauptoptionen eines Aglets

Retraction.Retraction. Ein Aglet wird vom Remote-Context entfernt und in Ein Aglet wird vom Remote-Context entfernt und in den aktuellen Context, von dem es angefordert wurde, den aktuellen Context, von dem es angefordert wurde, eingefügt.eingefügt.

Deactivation. Deactivation. Die Ausführung des Aglets wird angehalten, und Die Ausführung des Aglets wird angehalten, und sein Zustand auf die Festplatte gespeichert. sein Zustand auf die Festplatte gespeichert.

Activation . Activation . Die Ausführung des Aglets wird mit dem alten Die Ausführung des Aglets wird mit dem alten Zustand im selben Context wiedergestartet.Zustand im selben Context wiedergestartet.

DisposalDisposal. Die Ausführung vom Aglet wird angehalten und das . Die Ausführung vom Aglet wird angehalten und das Aglet wird von seinem aktuellen ContextAglet wird von seinem aktuellen Context entfernt, wobei alle entfernt, wobei alle seine Threads geschlossen werden.seine Threads geschlossen werden.

Page 12: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

12

Hauptoptionen eines Aglets Hauptoptionen eines Aglets Hauptoptionen eines Aglets Hauptoptionen eines Aglets

Aglet Aglet

Class File

DiskStorage

Context A Context B

Clone

Create

Dispatche

Retract

Dispose

Deactivate Activate

Page 13: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

13

Aglet Event ModelAglet Event Model Aglet Event ModelAglet Event Model DerDer Clone Listener Clone Listener ist für ist für Cloning Event‘sCloning Event‘s vorgesehen. Man benutzt vorgesehen. Man benutzt den Clone Listenerden Clone Listener, um zu reagieren:, um zu reagieren:

wenn ein Aglet geklont wird wenn ein Aglet geklont wird wenn ein wenn ein Aglet CloneAglet Clone erzeugt ist erzeugt ist nach dem nach dem CloningCloning..

DerDer Mobility Listener Mobility Listener ist für ist für Mobility Event‘sMobility Event‘s vorgesehen. Man benutzt vorgesehen. Man benutzt diesen diesen Listener,Listener, um zu reagieren: um zu reagieren:

wenn sich ein Aglet von einem wenn sich ein Aglet von einem ContextContext zu anderem bewegt zu anderem bewegt wenn es von einem wenn es von einem ContextContext angefordert wird angefordert wird wenn es bei einem neuen wenn es bei einem neuen ContextContext ankommt. ankommt.

DerDer Persistence Listener Persistence Listener ist für ist für Persistence Event‘sPersistence Event‘s vorgesehen, um auf Activation bzw. vorgesehen, um auf Activation bzw. Deactivation eines Aglets zu reagieren.Deactivation eines Aglets zu reagieren.

Page 14: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

14

Aglet Communication ModelAglet Communication ModelAglet Communication ModelAglet Communication Model

Aglets kommunizieren mittels Aglets kommunizieren mittels message passingmessage passing. . Messages Messages werden nacheinander verarbeitetwerden nacheinander verarbeitet.. Eine Message ist ein Objekt, das zwischen Aglets ausgetauscht wird.Eine Message ist ein Objekt, das zwischen Aglets ausgetauscht wird.

Synchrone KommunikationSynchrone Kommunikation Asynchrone KommunikationAsynchrone Kommunikation

Proxy AgletMessage

Reply

Message

ReplyAglet

Page 15: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

15

Aglet PackageAglet Package Aglet PackageAglet Package

Die wichtigsten Klassen bzw. Interfaces der Aglets API Die wichtigsten Klassen bzw. Interfaces der Aglets API sind :sind : AgletAglet AgletProxyAgletProxy AgletContextAgletContext MessageMessage FutureReplyFutureReply AgletIDAgletID

Page 16: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

16

  Die Klasse Aglet Die Klasse Aglet   Die Klasse Aglet Die Klasse Aglet

Die Klasse Die Klasse Aglet Aglet ist die zentrale Klasse in der Aglet APIist die zentrale Klasse in der Aglet API . . Sie enthält die MethodenSie enthält die Methoden, die den Lebenszyklus eines Aglets , die den Lebenszyklus eines Aglets

bestimmen:bestimmen: CloningCloning DispathingDispathing DeactivatingDeactivating DisposingDisposing

Sie enthält aber auch die Methoden, die das Verhalten von Sie enthält aber auch die Methoden, die das Verhalten von einem Aglet festlegen und die von einem Programmierer einem Aglet festlegen und die von einem Programmierer überschrieben werden sollenüberschrieben werden sollen . .

Page 17: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

17

Die Klasse Aglet Die Klasse Aglet Die Klasse Aglet Die Klasse Aglet

Das ObjektDas Objekt AgletInfoAgletInfo, das von , das von getAgletInfo()getAgletInfo() geliefert geliefert wird, enthält die Attribute des Agletswird, enthält die Attribute des Aglets : : Zeit, wann das Aglet erzeugt wurdeZeit, wann das Aglet erzeugt wurde code-basecode-base Ankunft-Zeit Ankunft-Zeit die Adresse seines aktuellen Context.die Adresse seines aktuellen Context.

Page 18: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

18

Die Klasse Aglet Die Klasse Aglet Die Klasse Aglet Die Klasse Aglet

Erzeugen eines AgletsErzeugen eines Aglets import com. ibm.agletimport com. ibm.aglet

public class MyFirstAglet extends Aglet public class MyFirstAglet extends Aglet

{{

// Die Methoden vom Aglet// Die Methoden vom Aglet

}}

Page 19: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

19

Die Klasse Aglet Die Klasse Aglet Die Klasse Aglet Die Klasse Aglet

Initialisierung eines AgletsInitialisierung eines Aglets

public void onCreation (Object init)public void onCreation (Object init)

{{

//hier wird das Aglet initialisiert//hier wird das Aglet initialisiert

}}

  

Page 20: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

20

Die Klasse Aglet Die Klasse Aglet Die Klasse Aglet Die Klasse Aglet

Start der AusführungStart der Ausführung public void run()public void run()

{{

// Aglet wird gestartet// Aglet wird gestartet

}}

Um das Aglet zu einem entfernten Context zu schicken, soll die Um das Aglet zu einem entfernten Context zu schicken, soll die MethodeMethode

dispatch(new URL („atp://some.host.com/context“));dispatch(new URL („atp://some.host.com/context“));

aufgerufen werdenaufgerufen werden

Page 21: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

21

DispatchingDispatchingDispatchingDispatching

StateByte Code

StateByte Code

Sending Receiving

Host Host

HostHost

1.

2.

3.

Page 22: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

22

AgletProxy InterfaceAgletProxy InterfaceAgletProxy InterfaceAgletProxy Interface

Durch das AgletProxy laufen alle Zugriffe auf Durch das AgletProxy laufen alle Zugriffe auf das Agletdas Aglet

Das Objekt AgletProxy ruft den Das Objekt AgletProxy ruft den Sicherheitsmanager auf, um zu entscheiden, ob Sicherheitsmanager auf, um zu entscheiden, ob der aktuelle Context die Aglets Methoden der aktuelle Context die Aglets Methoden anzusprechen erlaubt . anzusprechen erlaubt .

Das AgletProxy ermöglicht auch die sogenannte Das AgletProxy ermöglicht auch die sogenannte Orttransparenz (location transparency) Orttransparenz (location transparency)

Page 23: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

23

AgletProxy InterfaceAgletProxy InterfaceAgletProxy InterfaceAgletProxy Interface

Methoden, die das Proxy des neu erzeugten Methoden, die das Proxy des neu erzeugten Aglets zurückgeben:Aglets zurückgeben: public abstract AgletProxy AgletContext.createAgletpublic abstract AgletProxy AgletContext.createAglet

(URL codeBase, String code, Object init)(URL codeBase, String code, Object init) public abstract AgletProxy public abstract AgletProxy

AgletContext.retractAgletAgletContext.retractAglet (URL location, AgletID id) (URL location, AgletID id) public abstract AgletProxy public abstract AgletProxy

AgletProxy.dispatchAgletProxy.dispatch (URL destination) (URL destination)

Page 24: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

24

AgletProxy InterfaceAgletProxy InterfaceAgletProxy InterfaceAgletProxy Interface

   Proxies des existierendes Aglets bekommt man auch Proxies des existierendes Aglets bekommt man auch

auf die folgenden Weise :auf die folgenden Weise : public abstract AgletProxy Aglet.getProxy()public abstract AgletProxy Aglet.getProxy() public abstract AgletProxy public abstract AgletProxy

AgletContext.getAgletProxy(AgletID id)AgletContext.getAgletProxy(AgletID id) public abstract Enumeration public abstract Enumeration

AgletContext.getAgletProxy() AgletContext.getAgletProxy()

Page 25: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

25

AgletContext InterfaceAgletContext Interface AgletContext InterfaceAgletContext Interface

Der ContextDer Context ist eine Ausführungsumgebung für Aglets .ist eine Ausführungsumgebung für Aglets . Dieses Interface bietet die Möglichkeit die laufenden Dieses Interface bietet die Möglichkeit die laufenden

Aglets in einer Umgebung zu verwaltenAglets in einer Umgebung zu verwalten . . Die Aglet Klasse hat eine Methode zum Zugriff auf Die Aglet Klasse hat eine Methode zum Zugriff auf

seinen aktuellen Contextseinen aktuellen Contextcontext = getAgletContext();context = getAgletContext();

  

Page 26: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

26

AgletContext InterfaceAgletContext InterfaceAgletContext InterfaceAgletContext Interface

Das Aglet kann durch Zugreifen auf den Context ein Das Aglet kann durch Zugreifen auf den Context ein neues Aglet erzeugen:neues Aglet erzeugen:

context.createAglet(URL codeBase, String code, Object init)context.createAglet(URL codeBase, String code, Object init)

Außerdem gibt es eine Methode, die ein Aglet vom Außerdem gibt es eine Methode, die ein Aglet vom Remote-Context in den aktuellen Context zurückholt:Remote-Context in den aktuellen Context zurückholt:

context.retractAglet(remoteContextURL, agletID);context.retractAglet(remoteContextURL, agletID);

Page 27: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

27

Aglet, Aglets Lebenszyklus und ContextAglet, Aglets Lebenszyklus und Context Aglet, Aglets Lebenszyklus und ContextAglet, Aglets Lebenszyklus und Context

Wichtige Ereignisse im Leben eines AgletsWichtige Ereignisse im Leben eines Aglets CreationCreation: : Erzeugung und Klonen eines AgletsErzeugung und Klonen eines Aglets DisposalDisposal: : Tod eines AgletsTod eines Aglets MobilityMobility: : dispatch und retractdispatch und retract PersistencePersistence: : De- und Aktivierung eines AgletsDe- und Aktivierung eines Aglets

Page 28: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

28

Realisierung des Event ModellsRealisierung des Event ModellsRealisierung des Event ModellsRealisierung des Event Modells

Events Klassen:Events Klassen: CloneEvent, MobilityEvent, PersistencyEventCloneEvent, MobilityEvent, PersistencyEvent

Listener-Interfaces:Listener-Interfaces: CloneListener, MobilityListener, PersistencyListenerCloneListener, MobilityListener, PersistencyListener

Adapter-KlassenAdapter-Klassen CloneAdapter, MobilityAdapter, PersistencyAdapterCloneAdapter, MobilityAdapter, PersistencyAdapter

Page 29: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

29

EventsEvents EventsEvents

Einige Methoden von CloneEvent:Einige Methoden von CloneEvent: public AgletProxy getAgletProxy();public AgletProxy getAgletProxy();

gibt AgletProxy des geklonten Aglets zurückgibt AgletProxy des geklonten Aglets zurück Einige Methoden von MobilityEventEinige Methoden von MobilityEvent

public AgletProxy getAgletProxy();public AgletProxy getAgletProxy();gibt AgletProxy des gesendeten Aglets zurückgibt AgletProxy des gesendeten Aglets zurück

public URL getLocation();public URL getLocation(); gibt den Bestimmungsort für das Aglet zurückgibt den Bestimmungsort für das Aglet zurück

Einige Methoden von PersistencyEventEinige Methoden von PersistencyEvent public AgletProxy getAgletProxy();public AgletProxy getAgletProxy();

gibt das AgletProxy des de/aktivierten Aglets zurückgibt das AgletProxy des de/aktivierten Aglets zurück

Page 30: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

30

CreationCreationCreationCreation

Zwei Erzeugungsarten des AgletsZwei Erzeugungsarten des Aglets Direkt: Instanz einer Aglet KlasseDirekt: Instanz einer Aglet Klasse Indirekt: Klonen eines AgletsIndirekt: Klonen eines Aglets

Page 31: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

31

Creation(direkt)Creation(direkt)Creation(direkt)Creation(direkt)

das Erzeugen einer Aglet-Instanz durchdas Erzeugen einer Aglet-Instanz durch public AgletProxy AgletContext.createAglet(URL public AgletProxy AgletContext.createAglet(URL

codeBase, String code, Object init);codeBase, String code, Object init); (nicht durch Konstruktor protected Aglet.Aglet();)(nicht durch Konstruktor protected Aglet.Aglet();)

die Manipulation des Aglet Verhaltens die Manipulation des Aglet Verhaltens public void Aglet.onCreation(Object init);public void Aglet.onCreation(Object init); public void Aglet.run();public void Aglet.run();

(diese Methoden sollen überschrieben werden)(diese Methoden sollen überschrieben werden)

Page 32: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

32

Creation(direkt)Creation(direkt)Creation(direkt)Creation(direkt)

Zusammenarbeit der MethodenZusammenarbeit der Methoden

createAglet()

Aglet ()

onCreation()

run()

Page 33: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

33

Creation(indirekt)Creation(indirekt)Creation(indirekt)Creation(indirekt)

Klonen eines Aglets mittelsKlonen eines Aglets mittels public final Object Aglet.clone();public final Object Aglet.clone();

Steuerung des Klonens mittels Steuerung des Klonens mittels CloneListenerCloneListener public CloneAdapter.CloneAdapter();public CloneAdapter.CloneAdapter(); public final Aglet.AddCloneListener(CloneListener c);public final Aglet.AddCloneListener(CloneListener c);

(public final Aglet.removeCloneListener(CloneListener c);)(public final Aglet.removeCloneListener(CloneListener c);)

Page 34: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

34

Creation(indirekt)Creation(indirekt)Creation(indirekt)Creation(indirekt)

drei Methoden von drei Methoden von CloneListener CloneListener für die für die Steuerung des KlonensSteuerung des Klonens public void onCloning(Clone Event);public void onCloning(Clone Event); public void onClone(Clone Event);public void onClone(Clone Event); public void onCloned(Clone Event);public void onCloned(Clone Event);

Mit diesen Methoden kann auch das Verhalten Mit diesen Methoden kann auch das Verhalten des Aglets und des Clones festgelegt werden.des Aglets und des Clones festgelegt werden.

Page 35: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

35

Creation(indirekt)Creation(indirekt)Creation(indirekt)Creation(indirekt)

Die Zusammenarbeit der MethodenDie Zusammenarbeit der Methoden

run()

onCloning()

onCloned()

onClone()

run()

Original

Clone

Page 36: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

36

Creation(indirekt)Creation(indirekt)Creation(indirekt)Creation(indirekt)public class CloningExample extends Aglet{public class CloningExample extends Aglet{

boolean _theClone = false;boolean _theClone = false;public void onCreation(Object o){public void onCreation(Object o){

addCloneListener(new CloneAdapter(){addCloneListener(new CloneAdapter(){public void onCloning(CloneEvent e){public void onCloning(CloneEvent e){

//Ausgabe//Ausgabe}}public void onCloning(CloneEvent e){public void onCloning(CloneEvent e){

_theClone=true;_theClone=true;//Ausgabe//Ausgabe

}}public void onCloning(CloneEvent e){public void onCloning(CloneEvent e){

//Ausgabe//Ausgabe}); });

}}

Page 37: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

37

Creation(indirekt)Creation(indirekt)Creation(indirekt)Creation(indirekt)public void run() {public void run() {

if(!_theClone){if(!_theClone){

//The parent runs here//The parent runs here

clone();clone();

}else {}else {

//The clons runs here//The clons runs here

}}

}}

}}

Page 38: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

38

DisposalDisposalDisposalDisposal

Das Entfernen eines Aglets aus dem Context Das Entfernen eines Aglets aus dem Context mittelsmittels public final Aglet.dispose();public final Aglet.dispose();

Das Entfernen eines Aglets kann durch Das Entfernen eines Aglets kann durch public void Aglet.onDisposing();public void Aglet.onDisposing();

beeinflusst werden. beeinflusst werden.

Page 39: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

39

DisposalDisposalDisposalDisposal

Aufrufreihenfolge und Zusammenarbeit von Aufrufreihenfolge und Zusammenarbeit von MethodenMethoden

dispose()

onDisposing()

run()

Page 40: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

40

MobilityMobilityMobilityMobility

zwei Mobilitätsarten eines Agletszwei Mobilitätsarten eines Aglets aktiv: Dispatchingaktiv: Dispatching passiv: Retractionpassiv: Retraction

Page 41: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

41

Mobility(aktiv)Mobility(aktiv)Mobility(aktiv)Mobility(aktiv)

Ein Aglet kann sich selbst mittelsEin Aglet kann sich selbst mittels public final void Aglet.dispatch( URL destination);public final void Aglet.dispatch( URL destination);

zum anderen Context zum anderen Context destination destination bewegen. bewegen. Dispatching- Prozess kann durch Dispatching- Prozess kann durch

MobilityListener MobilityListener beeinflusst werden.beeinflusst werden. public MobilityAdapter.MobilityAdapter();public MobilityAdapter.MobilityAdapter(); public final Aglet.AddMobilityListener(CloneListener l);public final Aglet.AddMobilityListener(CloneListener l);

(public final Aglet.removeMobilityListener(CloneListener l);)(public final Aglet.removeMobilityListener(CloneListener l);)

Page 42: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

42

Mobility(aktiv)Mobility(aktiv)Mobility(aktiv)Mobility(aktiv)

zwei Methoden für Steuerung des Dispatchingszwei Methoden für Steuerung des Dispatchings public void MobilityAdapter.onDispatching();public void MobilityAdapter.onDispatching();

(bereitet das Aglet zur „Reise“ vor)(bereitet das Aglet zur „Reise“ vor) public void MobilityAdapter.onArrival();public void MobilityAdapter.onArrival();

(initialisiert das Aglet im Remote-Context)(initialisiert das Aglet im Remote-Context)

Page 43: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

43

Mobility(aktiv)Mobility(aktiv)Mobility(aktiv)Mobility(aktiv)

Die Zusammenarbeit der MethodenDie Zusammenarbeit der Methoden

run()

dispatch()

onDispatching()

onArrival()

run()

Aktuelles Context

Remote-Context

Page 44: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

44

Mobility(passiv)Mobility(passiv)Mobility(passiv)Mobility(passiv)

Ein Aglet kann aber auch von einem Remote- Ein Aglet kann aber auch von einem Remote- Context zurückgeholt werden mittelsContext zurückgeholt werden mittels public AgletProxy AgletContext.retractAglet(URL public AgletProxy AgletContext.retractAglet(URL

contextAddress, AgletID identity);contextAddress, AgletID identity);

Beispiel:Beispiel: AgletID aid=proxy.getAgletID()AgletID aid=proxy.getAgletID()

proxy.dispatch(destination);proxy.dispatch(destination);

getAgletContext().retractAglet(destination, aid);getAgletContext().retractAglet(destination, aid);

Page 45: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

45

Mobility(passiv)Mobility(passiv)Mobility(passiv)Mobility(passiv)

Retraction kann durch Retraction kann durch MobilityListenerMobilityListener gesteuert werden mittels gesteuert werden mittels onArrival()onArrival() und und public void public void

MobilityAdapter.onReverting( MobilityEvent);MobilityAdapter.onReverting( MobilityEvent);

Retraction unterstützt auch disconnected Retraction unterstützt auch disconnected operation operation

Page 46: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

46

Mobility(passiv)Mobility(passiv)Mobility(passiv)Mobility(passiv)

Die Zusammenarbeit der MethodenDie Zusammenarbeit der Methoden

retractAglet()

onArrival()

run()

run()

onReverting()

lokal

remote

Page 47: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

47

Mobility(passiv)Mobility(passiv)Mobility(passiv)Mobility(passiv)

Jedes Aglet lässt beim Verlassen des aktuellen Contextes Jedes Aglet lässt beim Verlassen des aktuellen Contextes seinen elektronischen Fingerabdruck im aktuellen Context seinen elektronischen Fingerabdruck im aktuellen Context

Dieser Fingerabdruck wird in der Dieser Fingerabdruck wird in der PropertyList PropertyList (Liste von (Liste von Attributpaaren) gespeichertAttributpaaren) gespeichert

Die PropertyList kann mittelsDie PropertyList kann mittels public abstract Object getProperty(String key);public abstract Object getProperty(String key); public abstract Object getProperty(String key,Object value);public abstract Object getProperty(String key,Object value); public abstract Object setProperty(String key, Object value);public abstract Object setProperty(String key, Object value);

verwaltet werdenverwaltet werden

Page 48: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

48

PersistencePersistencePersistencePersistence

Ein Aglet kann deaktiviert werden mittelsEin Aglet kann deaktiviert werden mittels public final Aglet.deactivate(long duration);public final Aglet.deactivate(long duration);

De- bzw. Aktivierung kann durch den De- bzw. Aktivierung kann durch den PersistencyListenerPersistencyListener beeinflusst werden beeinflusst werden public PersistencyAdapter.PersistencyAdapter();public PersistencyAdapter.PersistencyAdapter(); public final void Aglet.addPersistencyListener(public final void Aglet.addPersistencyListener(

PersistencyListener p);PersistencyListener p); public final void Aglet.removePersistencyListener(public final void Aglet.removePersistencyListener(

PersistencyListener p);PersistencyListener p);

Page 49: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

49

PersistencePersistencePersistencePersistence

zwei Methoden von zwei Methoden von PersistencyListenerPersistencyListener zur zur Steuerung von De- bzw. Aktivierung des AgletsSteuerung von De- bzw. Aktivierung des Aglets public void PersistencyAdapter.onDeactivating(public void PersistencyAdapter.onDeactivating(

PersistencyEvent event);PersistencyEvent event); public void PersistencyAdapter.onActivation(public void PersistencyAdapter.onActivation(

PersistencyEvent event);PersistencyEvent event);

Page 50: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

50

PersistencePersistencePersistencePersistence

Die Zusammenarbeit der MethodenDie Zusammenarbeit der Methoden

run()

deactivate()

onDeactivating()

onActivation()

run()

vorher

nachher

Page 51: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

51

Aglets MessagingAglets MessagingAglets MessagingAglets Messaging

Klasse MessageKlasse Message Simple MessagingSimple Messaging Future ReplyFuture Reply Message ManagerMessage Manager MulticastingMulticasting

Page 52: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

52

Klasse MessageKlasse MessageKlasse MessageKlasse Message

Aglets kommunizieren, indem sie Objekte der Aglets kommunizieren, indem sie Objekte der Klasse Message austauschenKlasse Message austauschen

eine Message hat zwei Attribute eine Message hat zwei Attribute kind kind und und argumentargument public Message(String kind);public Message(String kind); public Message(String kind, ** arg);public Message(String kind, ** arg);

(„**“ steht für int, float, Object usw.)(„**“ steht für int, float, Object usw.)

argument argument kann auch eine Hashtabelle seinkann auch eine Hashtabelle sein

Page 53: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

53

Klasse MessageKlasse MessageKlasse MessageKlasse Message

auf auf kindkind bzw. bzw. argumentargument kann zugegriffen kann zugegriffen werden mittelswerden mittels public String Message.getKind();public String Message.getKind(); public Object Message.getArg();public Object Message.getArg();

Messages kann man mittelsMessages kann man mittels public boolean Message.sameKind(public boolean Message.sameKind(

String);String);

unterscheiden.unterscheiden.

Page 54: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

54

Klasse MessageKlasse MessageKlasse MessageKlasse Message Eine Hashtabelle als Eine Hashtabelle als argument argument kann mittelskann mittels

public void Message.setArg(String key, Object value);public void Message.setArg(String key, Object value); public Object Message.gerArg(String key);public Object Message.gerArg(String key);

verwaltet werdenverwaltet werden Ein Message kann durchEin Message kann durch

public void Message.sendReply();public void Message.sendReply(); public void Message.sendReply(** reply); public void Message.sendReply(** reply); („**“ steht für int, float usw.)(„**“ steht für int, float usw.)

beantwortet werdenbeantwortet werden ein Message kann aber auch mit einer Exceptionein Message kann aber auch mit einer Exception

public void Message.sendException(Exception e);public void Message.sendException(Exception e);

beantwortet werdenbeantwortet werden

Page 55: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

55

Simple MessageSimple MessageSimple MessageSimple Message

Jedes Aglet soll einen Message-Handler haben.Jedes Aglet soll einen Message-Handler haben. Für Message-Handling ist die MethodeFür Message-Handling ist die Methode

public boolean Aglet.handleMessage(public boolean Aglet.handleMessage(

Message m);Message m);

vorgesehen.vorgesehen. Der Message-Handler ist durch if-then Der Message-Handler ist durch if-then

Anweisungen implementiert.Anweisungen implementiert.

Page 56: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

56

Simple MessageSimple MessageSimple MessageSimple Message

Eine Message wird mittels Proxy‘s Methode Eine Message wird mittels Proxy‘s Methode gesendet.gesendet. public Object AgletProxy.sendMessage(Message m);public Object AgletProxy.sendMessage(Message m);

Das Proxy dient als Message-Gateway fürs Das Proxy dient als Message-Gateway fürs AgletAglet

Simple Messaging ist sogenanntes synchrones Simple Messaging ist sogenanntes synchrones Messaging.Messaging.

Page 57: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

57

Future ReplyFuture ReplyFuture ReplyFuture Reply

Asynchrones Messaging durch Future ReplyAsynchrones Messaging durch Future Reply Beim asynchronen Messaging wird die Beim asynchronen Messaging wird die

Ausführung des Hauptthreads vom Aglet nicht Ausführung des Hauptthreads vom Aglet nicht blockiert. blockiert.

Future Reply als eine Art MailboxFuture Reply als eine Art Mailbox

Page 58: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

58

Future ReplyFuture ReplyFuture ReplyFuture Reply

beim asynchronem Messaging wird eine Message beim asynchronem Messaging wird eine Message mittels der Methodemittels der Methode public FutureReply Proxy.sendFutureMessage(Message m);public FutureReply Proxy.sendFutureMessage(Message m);

abgeschickt.abgeschickt. „„mailbox“ kann abgefragt werden durchmailbox“ kann abgefragt werden durch

public boolean FutureReply.isAvailable();public boolean FutureReply.isAvailable(); oder man wartet für eine bestimmte Zeit auf ein Reply oder man wartet für eine bestimmte Zeit auf ein Reply

public void FutureReply.waitForReply(long duration);public void FutureReply.waitForReply(long duration);

schließlich kann das Reply aus der Mailbox herausgeholt schließlich kann das Reply aus der Mailbox herausgeholt werdenwerden public Object FutureReply.getReply();public Object FutureReply.getReply();

Page 59: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

59

Future ReplyFuture ReplyFuture ReplyFuture Reply

Asynchrones MessagingAsynchrones Messaging

Message

Handler

Message

Handler

Aglet

Aglet

Proxy

Future

Reply

Obj.

1:sendMessage()

2: getReply()

Page 60: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

60

Future ReplyFuture ReplyFuture ReplyFuture Reply

public class FutureExample extends Aglet{public class FutureExample extends Aglet{

public void run(){public void run(){

AgletProxy proxy = get AgletContext().createAglet(getCodeBase(), AgletProxy proxy = get AgletContext().createAglet(getCodeBase(), “FutureChild“, null);“FutureChild“, null);

FutureReply future=proxy.sendFutureMessage(new Message(“Hello„));FutureReply future=proxy.sendFutureMessage(new Message(“Hello„));

future.waitForReply(4000);future.waitForReply(4000);

if(future.isAvailable()){if(future.isAvailable()){

String reply = (String) future.getReply();String reply = (String) future.getReply();

//Verarbeitung von Reply//Verarbeitung von Reply

}else //weiter ohne Reply machen}else //weiter ohne Reply machen

}}

} }

Page 61: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

61

Message ManagerMessage ManagerMessage ManagerMessage Manager

M M M M Message Handler

Aglet

Message Manager

Page 62: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

62

Multicasting MessageMulticasting MessageMulticasting MessageMulticasting Message

Bis jetzt wurde das sogenannte Bis jetzt wurde das sogenannte peer-to-peer peer-to-peer Messaging Messaging behandelt.behandelt.

Beim Beim peer-to-peer Messagingpeer-to-peer Messaging muß der muß der Absender das Proxy oder die Identität des Absender das Proxy oder die Identität des Empfängers kennen.Empfängers kennen.

Solch eine starke Bedienung tritt nur begrenzt Solch eine starke Bedienung tritt nur begrenzt auf.auf.

Die Alternative ist Die Alternative ist Message MulticastingMessage Multicasting!!

Page 63: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

63

Multicasting MessageMulticasting MessageMulticasting MessageMulticasting Message

ab

c

HelloHello

HelloHello

a

b

c

d

HelloHello

Subscribe Advertise

Page 64: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

64

Multicasting MessageMulticasting MessageMulticasting MessageMulticasting Message

Jedes Aglet kann eine oder mehrere Multicasting Jedes Aglet kann eine oder mehrere Multicasting Messages abonnierenMessages abonnieren public final void Aglet.subscribeMessage(String kind);public final void Aglet.subscribeMessage(String kind);

und sein Abonnement wieder ungültig machenund sein Abonnement wieder ungültig machen.. public final void Aglet.unsubscribeMessage(String kind);public final void Aglet.unsubscribeMessage(String kind); public final void Aglet.unsubscribeAllMessage(String kind);public final void Aglet.unsubscribeAllMessage(String kind);

Wenn ein Aglet den Context verlässt, wird sein Wenn ein Aglet den Context verlässt, wird sein Abonnement automatisch gelöscht.Abonnement automatisch gelöscht.

Page 65: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

65

Multicasting MessageMulticasting MessageMulticasting MessageMulticasting Message

das Abonnement wird im Context gespeichert.das Abonnement wird im Context gespeichert. Eine Message wird an die Abonnenten durchEine Message wird an die Abonnenten durch

public ReplySet AgletContext.multicastMessage(public ReplySet AgletContext.multicastMessage(

Message msg);Message msg); verschickt.verschickt. Als Rückgabewert bekommt man ein ReplySet, Als Rückgabewert bekommt man ein ReplySet,

das mit einem Iterator durchlaufen werden das mit einem Iterator durchlaufen werden kann.kann.

ReplySet enthält alle Replys der Abonnenten.ReplySet enthält alle Replys der Abonnenten.

Page 66: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

66

Multicasting MessageMulticasting MessageMulticasting MessageMulticasting Message

public class MulticastsubScriber extends Aglet{public class MulticastsubScriber extends Aglet{public void onCreation(Object o){public void onCreation(Object o){

subscribeMessage(“Hello“);subscribeMessage(“Hello“);}}public boolean handleMessage(Message msg){public boolean handleMessage(Message msg){

if(msg.sameKind(“Hello“){if(msg.sameKind(“Hello“){//.....//.....return true;return true;

}}else return false;else return false;

}}}}

Page 67: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

67

Aglets FrameworkAglets FrameworkAglets FrameworkAglets Framework

Aglets Framework besteht aus drei Aglets Framework besteht aus drei Schichten:Schichten: Services und die von Benutzer definierte Services und die von Benutzer definierte

AgletsAglets Aglet APIAglet API Communication APICommunication API

Page 68: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

68

Aglets FrameworkAglets FrameworkAglets FrameworkAglets FrameworkUser-Defined Aglets

Aglet APIAglets Runtime Layer

-Core Framework..............

-Management Components

CachManager..........

SecurityManager......

PersistencyManager

Communication API

Communication Layer

Page 69: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

69

Aglets FrameworkAglets FrameworkAglets FrameworkAglets Framework

CoreFramework: eigentliche Implementierung CoreFramework: eigentliche Implementierung der Aglet APIder Aglet API

zuständig für:zuständig für: Ausführung des AgletsAusführung des Aglets De-/Serialisierung des AgletsDe-/Serialisierung des Aglets Laden und Transfer von KlassenLaden und Transfer von Klassen Aglet ReferencesAglet References

Page 70: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

70

Aglets FrameworkAglets FrameworkAglets FrameworkAglets Framework

Management KomponenteManagement Komponente PersistenceManager: Speichern von deaktivierten PersistenceManager: Speichern von deaktivierten

AgletsAglets CacheManager: Verwalten von DatenCacheManager: Verwalten von Daten SecurityManager: Schutz von Hosts und Aglets SecurityManager: Schutz von Hosts und Aglets

gegen böswillige Eingriffegegen böswillige Eingriffe

Page 71: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

71

Aglets FrameworkAglets FrameworkAglets FrameworkAglets Framework

Communication Layer ist verantwortlich für Communication Layer ist verantwortlich für Transport der Aglets über das NetzwerkTransport der Aglets über das Netzwerk

Agent Transfer Protokoll (ATP)Agent Transfer Protokoll (ATP) ATP basiert sich auf HTTP-ProtokollATP basiert sich auf HTTP-Protokoll

Page 72: 1 Was sind Aglets? Was sind Aglets? Seminar Software Agenten Vortrag von Tatjana Tschupin und Sergej Lewin und Sergej Lewin

72

ZusammenfassungZusammenfassungZusammenfassungZusammenfassung Aglets werden zur Zeit nirgends im industriellen Aglets werden zur Zeit nirgends im industriellen

Maßstab eingesetzt. Maßstab eingesetzt. Man kann sie als ziemlich fortgeschrittener Man kann sie als ziemlich fortgeschrittener

Forschungsprototyp ansehen, bei dessen Forschungsprototyp ansehen, bei dessen Implementierung wichtige Erkenntnisse über die Implementierung wichtige Erkenntnisse über die Realisierbarkeit und Probleme von mobilen Realisierbarkeit und Probleme von mobilen Agenten gewonnen wurden. Agenten gewonnen wurden.

Ob sie im industriellen Maßstab eingesetzt werden Ob sie im industriellen Maßstab eingesetzt werden und weiter entwickelt werden, hängt davon ab, ob und weiter entwickelt werden, hängt davon ab, ob man geeignete Anwendungsfelder findet.man geeignete Anwendungsfelder findet.