Ein anderer Punkt um Agentenaktivität auch zwischen heterogenen Systemen zu ermöglichen stellen die verschiedenen Standardisierungsversuche dar. Zahlreiche Agentensystem-Typen existieren, doch deren Möglichkeit untereinander zu interoperieren ist nur begrenzt, meistens sogar gänzlich ausgeschlossen.
Die beiden entscheidenden technischen Aspekte von Interoperabilität stellen dabei die Methodik zur Kommunikation und zum Transport dar.
Die Foundation of Intelligent Phisical Agents (FIPA) ist eine nicht-gewinnorientierte Organisation die von z.Z. 24 Unternehmen gebildet wird und die sich seit 1997 mit der Standardisierung von Software Agenten beschäftigt.
Grundsätzlich hat die FIPA neben der weitmächtigeren OMG, nur insofern Bedeutung, als dass sie einen Bereich betrachtet, den die OMG komplett auslässt: die Kommunikation zwischen Agenten. Hierzu definiert sie eine eigene Agenten Kommunikations Sprache (FIPA-ACL).
ACL), betrachtet diese jedoch in weit allgemeinerer Form und erlaubt so z.B. die Einbindung verschiedener Formen zur Wissensrepräsentationen.
Wichtige Bestandteile der FIPA-ACL sind:
Ontologien | Legen den Bezug eines Begriffs eindeutig fest. So kann der Begriff „Kohl“ sowohl in den Ontologien Agrarwirtschaft, wie Politik vorkommen. | |
Sprechakte | Innerhalb der FIPA-ACL sind 24 Grammatiken definiert, die einen bestimmten Kommunikationsverlauf festlegen. So legt beispielsweise der Sprechakt „Information“ eindeutig fest, das der Absender eine Frage stellt und von dem Empfänger darauf eine bestimmte Antwort erwartet. Sicherlich relativ trivial, dennoch aber unbedingt erforderlich. | |
Wissens- |
Die Darstellung von Informationen (Wissen), wie also z.B. mitgeteilt wird,
dass es gerade in Hamburg regnet, wird über sogenannte Wissensrepräsentationssprachen
dargestellt. FIPA unterstützt hier gleich einen ganzen Satz solcher
Sprachen (z.B. KIF,,FIPA-SL,CCL), die dies in unterschiedlicher Syntax tun. |
Beispiel FIPA-ACL Sprechakt:
Bob möchte von Scott wissen, wie das Wetter bei ihm ist ist. Scott antwortet, dass es bei ihm regnet:
inform | Der Sprechakt inform definiert Anfrage/Antwort-Schema | |
content | Wissensrepräsentation (hier in FIPA-SL) | |
ontology | Kontext in dem diese Anfrage steht (hier: wetter) |
Vom OMG Entwickelt, dass mit seinen über 800 beteiligten Unternehmen auch. für Standards wie Corba oder UML verantwortlich ist, besitzt die Mobile Agent System Interoperability Facilities Spezifikation (z.B. KIF), eine weit höhere Bedeutung und Durchsetzungsfähigkeit als die Vorschläge der FIPA.
Jedoch bezieht sich MASIF hauptsächlich auf das Agenten-Management und vernachlässigt den Bereich Kommunikation vollständig, so dass sich beide Standards hier ergäntzen lassen.
Wesentliche Bestandteile von MASIF sind:
Autoritäten (authorities) |
Besitzer, der für Agent und Agentensystem existieren muss | |
Plätze (places) | Bezeichnet den Kontext, in dem sich einzelne Agenten befinden. Mehrere Agenten können sich innerhalb eines Platzes aufhalten von denen wiederum mehrere innerhalb eines Agentensystems existieren können. Agenten werden über Plätzen dann etwa bestimmte Rechte und Ressourcen zugewiesen. |
|
Agentensystem | wie besprochen, jedoch mit der Anmerkung dass auch mehrere Systeme auf einem Host bestehen können. | |
Regionen | Mehrere Agentensysteme der gleichen Autorität | |
Agenten Profile | Definiert die (Migrations-) Kompatibilität zweier Agentensysteme. Maßgebliche Parameter hierfür sind Agentensystemtyp + Serialisierungsmethode | |
Kommunikations- |
Bezeichnet den Kommunikationskanal (Schnittstellen+ Infrastruktur Protokolle) über den zwei Agentensysteme miteinander kommunizieren | |
Location | Dient zur konkreten Adressierung eines Agenten. Bestandteile hierfür sind Agentensystem + Platz + Agenten-Identifikation |
Interoperabilität stellt ein MASIF-konformes System maßgeblich durch den Einsatz von Corba sicher – welches ebenfalls von der OMG standardisiert wurde.
Corba entspricht grundsätzlich der Remote Evaluation Architektur (vgl.
Kapitel 1). Entgegen anderer Architekturen, ist Corba unabhängig von Plattform-
und Implementierung einsetzbar. So wird beispielsweise ermöglicht, dass
ein C++-Programm unter Windows über Corba, Java-Methoden unter Unix aufrufen
kann.
Gewährleistet wird dies durch drei Bestandteile:
Die Integrierung von Corba in MASIF findet auf Anwendungssicht durch zwei IDL-Schnittstellen statt:
wird vom korrekten Agentensystem eingebunden und stellt entsprechende Transport-Funktionalitäten, u.a. zum Erstellen und Versenden von Agenten bereit | ||
MAFFinder | definiert eine Form von Registrierungsdienst, über den sich Agenten registrieren, abmelden und von externen Diensten lokalisiert werden können. Dabei muss nicht jedes Agentensystem ein solchen Dienst anbieten, MASIF sieht hier einen pro Region vor |
Der konkrete Migrationsablauf, der hierdurch entsteht lässt sich wie folgt beschreiben:
1) Agent A stellt Migrationsanfrage an sein Agenten-System (A)
2) System A stellt Migrationsanfrage (Profil, Klassenliste) an System B
3) Wenn System B Profil unterstützt:
- (Stoppen von Agent A durch System A)
- Abrufen der Agenten-Klassen über System A
4) (Starten von Agent A auf System B)
5) Umregistrierung des Agenten bei MAFFinder 1+2
Definiert MAFO noch relativ genau, die Funktionsweise eines Agentensystems und wie etwa ein Agententransport auszusehen hat, so schweigt es sich doch vollständig darüber aus, wie nun konkret beispielsweise ein Voyager-Agent auf einem Aglet-System migrieren und ausgeführt werden kann.
Eine hierfür nötige Agenten-Spezifikation fehlt nämlich gänzlich. Eine Gruppe der Universität München [vgl Kemtper2001] hat beim Versuch ein MAFO-konformes Agentensystem zu entwickeln dies schließlich durch agentensystem-spezifische Gateways (am Beispiel Voyager) umgangen [vgl. MAF]. Eine praktizierbare Lösung steht hier somit immer noch aus.
Standards regeln ebenfalls nicht, wie die Sicherheit von Agenten und Agenten–Systemen sichergestellt werden kann. Möglich wäre dies etwa, könnten ein Agent vom Agentensystem bestimmte Sicherheitskriterien zugesichert bekommen (und umgekehrt). Eine vertrauenswürdige Zertifizierungsstelle müsse in einem solchen Fall zudem für die Glaubwürdigkeit des Systems oder eines Agenten garantieren können.
Zur Erstellung eines Mobilen Agenten, etwa für eine Datenbank-Recherche,
muss weiterhin festgelegt sein, welche Funktionen dieser auf einem fremden System
dazu aufrufen kann (z.B. findAuthor() oder findAllWords()). Entsprechende anwendungsspezifische
Schnittstellen werden hier benötigt.
[ nach oben ]