Agentenorientierte Programmierung - Agent-oriented programming

Agentenorientierte Programmierung ( AOP ) ist ein Programmierparadigma, bei dem der Aufbau der Software auf das Konzept von Softwareagenten ausgerichtet ist . Im Gegensatz zur objektorientierten Programmierung , deren Kern Objekte (die Methoden mit variablen Parametern bereitstellen) besitzt, hat AOP im Kern extern spezifizierte Agenten (mit Schnittstellen und Messaging-Fähigkeiten). Man kann sie sich als Abstraktionen von Objekten vorstellen. Ausgetauschte Nachrichten werden durch den Empfang von "Agenten" auf eine Weise interpretiert, die für seine Agentenklasse spezifisch ist.

Geschichte

Historisch gesehen wurde das Konzept der agentenorientierten Programmierung und die Idee, Software um das Konzept eines Agenten zu zentrieren, von Yoav Shoham im Rahmen seines Studiums der künstlichen Intelligenz im Jahr 1990 eingeführt. Seine Agenten sind spezifisch für sein eigenes Paradigma, da sie nur eine Methode haben, mit ein einzelner Parameter. Um Yoav Shoham aus seinem Papier von 1990 zu zitieren, um einen grundlegenden Unterschied zwischen AOP und OOP zu erfahren:

...agentenorientierte Programmierung (AOP), die als Spezialisierung der objektorientierten Programmierung angesehen werden kann. ...
OOP AOP
Basiseinheit Objekt Agent
Parameter, die den Zustand des Grundgeräts definieren uneingeschränkt Überzeugungen, Verpflichtungen, Fähigkeiten, Entscheidungen, ...
Berechnungsprozess Nachrichtenweiterleitung und Antwortmethoden Nachrichtenweiterleitung und Antwortmethoden
Arten von Nachrichten uneingeschränkt informieren, anfordern, anbieten, versprechen, ablehnen, ...
Einschränkungen bei Methoden keiner Ehrlichkeit, Konsequenz, ...

Frameworks

Es gibt mehrere AOP-„Frameworks“, auch Agentenplattformen genannt, die das Programmierparadigma von Shoham implementieren. Die folgenden Beispiele veranschaulichen, wie ein einfacher Agent als Hello-World-Programm programmiert wird.

JADE

Für die Java-Plattform ist eines der Frameworks JADE ( https://web.archive.org/web/20100621141053/http://jade.tilab.com/ ). Hier ist ein sehr einfaches Beispiel [1] für einen Agenten, der Code ausführt

package helloworld;
import jade.core.Agent;

public class Hello extends Agent {
	
	protected void setup() { 
		System.out.println("Hello World. ");
		System.out.println("My name is "+ getLocalName()); 
	}
	
	public Hello() {
		System.out.println("Constructor called");
	}

}

Im Kern des AOP Modells JADE ist , dass sein API die Standard unterstützt FIPA Agent - Kommunikation Sprache

Agentensprech (Jason)

Für eine wörtliche Übersetzung von agentenorientierten Konzepten in ein unverhülltes Schema wie JADE, hinter Java und Objektorientierung, bietet Agent Speak (Jason) eine "natürliche" Sprache für Agenten.

	
	started.

	+started <- .print("Hello World. ").

TOR

GOAL ist eine Agenten- Programmiersprache zur Programmierung kognitiver Agenten . GOAL-Agenten leiten ihre Handlungswahl aus ihren Überzeugungen und Zielen ab. Die Sprache liefert die grundlegenden Bausteine, um kognitive Agenten zu entwerfen und zu implementieren, indem sie Konstrukte programmiert, die die Manipulation der Überzeugungen und Ziele eines Agenten ermöglichen und erleichtern und seine Entscheidungsfindung strukturieren . Die Sprache bietet einen intuitiven Programmierrahmen, der auf gesundem Menschenverstand oder praktischen Überlegungen basiert .

SARL-Sprache

SARL ( SARL-Website ) bietet die grundlegenden Abstraktionen für die Codierung von Multiagentensystemen. Es verwendet eine skriptähnliche Syntax (inspiriert von Scala und Ruby).

package helloworld
import io.sarl.core.Initialize
agent HelloWorldAgent {
        on Initialize {	
             println("Hello World.")
        }
}

Middleware

Eine Möglichkeit, modulare oder erweiterbare AOP-Unterstützung zu implementieren, besteht darin, Standard-AOP- APIs für Middleware- Funktionen zu definieren , die selbst als Softwareagenten implementiert sind . Beispielsweise kann ein Verzeichnisdienst als FIPA- Verzeichnisvermittler oder DF-Softwareagent implementiert werden ; Lebenszyklusmanagement zum Starten, Stoppen, Anhalten und Wiederaufnehmen von Agenten kann als FIPA Agent Management Service oder AMS-Agent implementiert werden. Ein Vorteil des AOP-Ansatzes besteht darin, dass er dynamischere Rollen zwischen verschiedenen Benutzern und Anbietern von Anwendungen, Diensten und Netzwerken unterstützt. Herkömmlicherweise wurden Netzwerke und Dienste normalerweise vom Netz- und Dienstanbieter im Auftrag des Kunden verwaltet und als einzelner virtueller Netzdienst angeboten, aber die Kunden selbst werden immer stärker in die Lage versetzt, ihre eigenen Dienste zu integrieren und zu verwalten. Dies kann über AOP und APIs zu Middleware-Agenten erreicht werden, die die Kommunikation flexibel und dynamisch verwalten können.

Siehe auch

Verweise