Agentorienteret programmering - Agent-oriented programming

Agentorienteret programmering ( AOP ) er et programmeringsparadigme, hvor konstruktionen af ​​softwaren er centreret om begrebet softwareagenter . I modsætning til objektorienteret programmering, der har objekter (der leverer metoder med variable parametre) i kernen, har AOP eksternt specificerede agenter (med grænseflader og messaging-funktioner) i sin kerne. De kan betragtes som abstraktioner af objekter. Udvekslede meddelelser fortolkes ved at modtage "agenter" på en måde, der er specifik for dens klasse af agenter.

Historie

Historisk set blev begrebet agentorienteret programmering og ideen om at centrere software omkring begrebet agent introduceret af Yoav Shoham inden for sine studier af kunstig intelligens i 1990. Hans agenter er specifikke for hans eget paradigme, da de kun har en metode med en enkelt parameter. At citere Yoav Shoham fra sit papir i 1990 for en grundlæggende forskel mellem AOP og OOP:

... agentorienteret programmering (AOP), som kan ses som en specialisering af objektorienteret programmering. ...
OOP AOP
Grundlæggende enhed objekt agent
Parametre, der definerer basisenhedens tilstand ubegrænset overbevisninger, forpligtelser, kapaciteter, valg, ...
Beregningsproces meddelelsesoverførsel og svarmetoder meddelelsesoverførsel og svarmetoder
Beskedtyper ubegrænset informere, anmode om, tilbyde, love, afvise, ...
Begrænsninger for metoder ingen Ærlighed, konsistens, ...

Rammer

Der er flere AOP 'rammer', også kaldet agentplatforme, der implementerer Shohams programmeringsparadigme. De følgende eksempler illustrerer, hvordan en basisagent er programmeret som et hej-verdensprogram.

JADE

For Java-platformen er en af ​​rammerne JADE ( https://web.archive.org/web/20100621141053/http://jade.tilab.com/ ). Her er et meget grundlæggende eksempel [1] på en agent, der kører kode

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");
	}

}

Kernen i JADEs AOP-model er, at dens API understøtter standardkommunikationssprog FIPA Agent

Agent Speak (Jason)

For en bogstavelig oversættelse af agentorienterede begreber til et skema, der er intet ligesom JADE, bag Java og Object Orientedness, giver Agent Speak (Jason) et "naturligt" sprog for agenter.

	
	started.

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

MÅL

GOAL er en agent programmeringssprog til programmering kognitive agenter . GOAL-agenter udleder deres valg af handling ud fra deres tro og mål. Sproget giver de grundlæggende byggesten til at designe og implementere kognitive agenter ved programmeringskonstruktioner, der tillader og letter manipulation af en agents overbevisninger og mål og strukturerer dens beslutningstagning . Sproget giver en intuitiv programmeringsramme baseret på sund fornuft eller praktisk ræsonnement .

SARL sprog

SARL ( SARL-webstedet ) giver de grundlæggende abstraktioner til kodning af multiagentsystemer. Det bruger en script-lignende syntaks (inspireret af Scala og Ruby).

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

Middleware

En måde at implementere modulær eller udvidelig AOP-understøttelse på er at definere standard AOP API'er til middleware- funktioner, der selv er implementeret som softwareagenter . For eksempel kan en katalogtjeneste implementeres som en FIPA-katalogfacilitator eller DF-softwareagent; livscyklusstyring til start, stop, suspendering og genoptagelse af agenter kan implementeres som en FIPA Agent Management Service eller AMS-agent. En fordel ved AOP-tilgangen er, at den understøtter mere dynamiske roller mellem forskellige brugere og udbydere af applikationer, tjenester og netværk. For eksempel blev netværk og tjenester traditionelt normalt administreret af netværket og tjenesteudbyderen på vegne af kunden og tilbydes som en enkelt virtuel netværkstjeneste, men kunderne bliver selv mere bemyndigede til at integrere og administrere deres egne tjenester. Dette kan opnås via AOP og API'er til middleware-agenter, der kan styre kommunikation fleksibelt og dynamisk.

Se også

Referencer