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å
- Software agent
- NetLogo
- Skuespillermodel - Model til samtidig beregning
- MÅL