Programació orientada a agentsLa programació orientada a agents (POA) és un paradigma de programació on la construcció del programari se centra en el concepte d'agents de programari. A diferència de la programació orientada a objectes, que té objectes (que proporcionen mètodes amb paràmetres variables) al seu nucli, la POA té agents especificats externament (amb interfícies i capacitats de missatgeria). Es poden considerar com a abstraccions d'objectes. Els missatges intercanviats són interpretats pels "agents" receptors, d'una manera específica per a la seva classe d'agents.[1] HistòriaHistòricament, el concepte de programació orientada a agents i la idea de centrar el programari al voltant del concepte d'agent van ser introduïts per Yoav Shoham dins dels seus estudis d'intel·ligència artificial el 1990.[2][3] Els seus agents són específics del seu propi paradigma, ja que només tenen un mètode, amb un paràmetre. Citant Yoav Shoham del seu article de 1990 per a una diferència bàsica entre AOP i OOP: ... programació orientada a agents (POA), que es pot veure com una especialització de la programació orientada a objectes.
MarcsHi ha múltiples "frameworks" AOP, també anomenats plataformes d'agents, que implementen el paradigma de programació de Shoham. Els exemples següents il·lustren com es programa un agent bàsic com un programa de tipus hola món. JADEPer a la plataforma Java, un dels frameworks és JADE. Aquí teniu un exemple molt bàsic[4] d'un agent que executa codi. 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");
}
}
El nucli del model AOP de JADE és que la seva API és compatible amb el llenguatge de comunicació d'agents FIPA estàndard. Agent Speak (Jason)AgentSpeak és un llenguatge de programació orientat a agents basat en la programació lògica i l'arquitectura creença-desig-intenció (BDI). Per a una traducció literal de conceptes orientats a agents en un esquema sense ofuscació com ho és JADE, darrere de Java i l'orientació a objectes, Agent Speak (Jason) proporciona un llenguatge "natural" per als agents. started.
+started <- .print("Hello World. ").
GOALGOAL és un llenguatge de programació d'agents cognitius. Els agents GOAL deriven la seva elecció d'acció de les seves creences i objectius. El llenguatge proporciona els components bàsics per dissenyar i implementar agents cognitius mitjançant la programació de construccions que permeten i faciliten la manipulació de les creences i els objectius d'un agent i per estructurar la seva presa de decisions. El llenguatge proporciona un marc de programació intuïtiu basat en el sentit comú o el raonament pràctic. SARL LanguageSARL[5] proporciona les abstraccions fonamentals per a la codificació de sistemes multiagent. Utilitza una sintaxi semblant a un script (inspirada en Scala i Ruby). package helloworld
import io.sarl.core.Initialize
agent HelloWorldAgent {
on Initialize {
println("Hello World.")
}
}
PADE (Framework de desenvolupament d'agents Python)PADE[6] és un paquet Python per desenvolupar agents intel·ligents en llenguatge Python. Aquest marc de treball compleix amb els estàndards FIPA i ACL. class AgenteHelloWorld(Agent):
def __init__(self, aid):
super(AgenteHelloWorld, self).__init__(aid=aid)
display_message(self.aid.localname, "Hello World!")
MiddlewareUna manera d'implementar suport AOP modular o extensible és definir API AOP estàndard per a funcions de middleware que s'implementen com a agents de programari. Per exemple, un servei de directori es pot implementar com a facilitador de directoris FIPA o agent de programari DF; la gestió del cicle de vida per iniciar, aturar, suspendre i reprendre els agents es pot implementar com a servei de gestió d'agents FIPA o agent AMS.[7] Un avantatge de l'enfocament AOP és que admet rols més dinàmics entre diferents usuaris i proveïdors d'aplicacions, serveis i xarxes. Per exemple, tradicionalment, les xarxes i els serveis eren gestionats pel proveïdor de xarxa i servei en nom del client i s'oferien com un únic servei de xarxa virtual, però els propis clients cada cop tenen més poder per integrar i gestionar els seus propis serveis. Això es pot aconseguir mitjançant AOP i API per a agents de middleware que poden gestionar la comunicació de manera flexible i dinàmica.[8] Referències
|
Portal di Ensiklopedia Dunia