Ágensorientált programozás (AOP) egy programozási paradigma, ahol szoftver elkészülésének középpontjában a szoftverágensek koncepciója áll. Ellentétben az objektumorientált programozással, amelynek az objektumok (metódusokat biztosít változó paraméterekkel) állnak a középpontban, míg az AOP középpontjában külsőleg meghatározott ágensek (interfészekkel és üzenetküldő képességekkel) állnak. Úgy lehet őket felfogni, mint a objektumok absztrakcióit. A üzeneteket a fogadó "ágensek" értelmezik, az ágensek osztályára jellemző módon.
Történet Történelmileg az ágensorientált programozást, és az ötletet, hogy szoftver az ágens fogalmának középpontjába álljon, Yoav Shoham vezette be, a mesterségesintelligencia- tanulmányai során 1990-ben. Az ágensei azok saját paradigmájára specifikusak, mivel csak egyetlen metódusuk van, egyetlen paraméterrel. Yoav Shohamot idézve 1990-es írásából, amelyben az AOP és az OOP közötti alapvető különbségről ír:
... ágensorientált programozás (AOP), amely az objektumorientált programozás specializációjának tekinthető. . . .
OOP AOP Alapegység objektum ágens Az alapegység állapotát meghatározó paraméterek kötetlen hiedelmek, elkötelezettségek, képességek, választási lehetőségek, ... A számítás folyamata üzenettovábbítás és válaszmetódusok üzenettovábbítás és válaszmetódusok Az üzenet típusai kötetlen tájékoztatás, kérés, ajánlat, ígéret, elutasítás,. . . A módszerekre vonatkozó korlátozások nincs őszinteség, következetesség,. . .
Keretrendszerek Számos AOP-"keretrendszer" van, más néven ágensplatformok, amelyek megvalósítják Shoham programozási paradigmáját. A következő példák szemléltetik, hogy az alapágens hogy van hello-world programként programozva.
JADE A Java-platform egyik keretrendszere a JADE.https://web.archive.org/web/20100621141053/http://jade.tilab.com/ Itt megtalálható egy nagyon egyszerű példahttps://web.archive.org/web/20110702083510/http://rootdev.nl/blog/article/aop_jade_configure_in_eclipse_and_netbeans a kódot futtató ügynökről. 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");
}A JADE AOP modelljének lényege, hogy API-ja támogatja a szabványos FIPA Agent kommunikációs nyelvet
Agent Speak (Jason) Az ágensorientált fogalmak szó szerinti lefordításához a JADE-hez hasonlóan a Java és az objektumorientáltság mögött álló Agent SpeakAnand S. Rao, 1996. AgentSpeak(L): BDI Agents Speak Out in a Logical Computable Language. Proceedings of Seventh European Workshop on Modelling Autonomous Agents in a Multi-Agent World (MAAMAW-96). (Jason) egy "természetes" nyelvet biztosít az ágensek számára. started.
+started <- .print("Hello World. ").
GOAL A GOAL egy ágens programozási nyelv, kognitív ágensek programozásához. A GOAL ágensei meggyőződésükből és céljaikból hoznak döntést a választások során. A nyelv biztosítja az alapvető építőelemeket a kognitív ágensek tervezéséhez és megvalósításához olyan konstrukciók programozásával, amelyek lehetővé teszik és megkönnyítik az ügynök meggyőződésének és céljainak manipulálását, valamint strukturálják döntéshozatalát. A nyelv intuitív programozási keretrendszert nyújt, józan ész vagy gyakorlati érvelés alapján.
SARL nyelv A SARL Rodriguez, Sebastian; Gaud, Nicolas; Galland, Stéphane (2014). " ( SARL webhely ) biztosítja az multi-ágens rendszerek programozásának alapvető absztrakcióját. Szkriptszerű szintaxist használ (Amelyet Scala és Ruby ihletett).package helloworld import io.sarl.core.Initialize agent HelloWorldAgent { on Initialize { println("Hello World.")
Köztes szoftver A moduláris vagy bővíthető AOP-támogatás megvalósításának egyik módja a standard AOP API-k meghatározása a köztes szoftver funkcióihoz, amelyek maguk is szoftverágensként valósulnak meg. Például egy címtárszolgáltatás megvalósítható FIPA-címtárszervezőként vagy DF-szoftverágensként; Az életciklus-menedzsment az ágensek elindításához, leállításához, felfüggesztéséhez és folytatásához FIPA Agent Management Service vagy AMS ágensként valósítható meg. Az AOP megközelítés előnye, hogy támogatja az alkalmazások, szolgáltatások és hálózatok különböző felhasználói és szolgáltatói közötti dinamikusabb szerepeket. Például hagyományosan a hálózatokat és szolgáltatásokat általában az ügyfél nevében a hálózat és a szolgáltató irányította, és egyetlen virtuális hálózati szolgáltatásként kínálták, de maguk az ügyfelek is egyre inkább fel vannak hatalmazva arra, hogy integrálják és kezeljék saját szolgáltatásaikat. Ezt AOP-n és API-n keresztül lehet elérni a köztes ágensek számára, amelyek rugalmasan és dinamikusan képesek kezelni a kommunikációt.
Jegyzetek
Fordítás
Kapcsolódó szócikk Szoftverágens
Kategória:Programozási paradigmák