Ugrás a tartalomhoz

„Ágensorientált programozás” változatai közötti eltérés

A Wikipédiából, a szabad enciklopédiából
Tartalom törölve Tartalom hozzáadva
Készült a(z) „Agent-oriented programming” oldal lefordításával
(Nincs különbség)

A lap 2021. április 18., 19:49-kori változata

Ágens-orientá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énelem

Történelmileg, az ágens-orientált programozás, és az ötlet, hogy szoftver az ágens fogalmának középpontjába álljon, Yoav Shoham által lett bevezetve, a Mesterséges Intelligencia tanulmányai során 1990-ben. [1] [2] 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:

... ágens-orientált programozás (AOP), amely az objektum-orientált programozás specializációjának tekinthető. . . .
OOP AOP
Alap egysé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 üzenet továbbítás és válasz metódusok üzenet továbbítás és válasz metó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 [3] ( https://web.archive.org/web/20100621141053/http://jade.tilab.com/ ). Itt megtalálható egy nagyon egyszerű példa [1] 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 Speak[4] (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 [5] ( 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. [6] 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. [7]

Lásd még

Hivatkozások

 

  1. Shoham, Y.. Agent-Oriented Programming. Stanford University: Computer Science Department (1990) 
  2. Shoham (1993). „Agent-Oriented Programming”. Artificial Intelligence 60 (1), 51–92. o. DOI:10.1016/0004-3702(93)90034-9.  
  3. Bellifeminee, Fabio (2001). „JADE: a FIPA2000 compliant agent development environment”. Proceedings of the fifth international conference on Autonomous agents: 216–217. doi:10.1145/375735.376120. 
  4. Anand 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).
  5. Rodriguez, Sebastian; Gaud, Nicolas; Galland, Stéphane (2014). " SARL: A General-Purpose Agent-Oriented Programming Language, 2014 IEEE/WIC/ACM International Joint Conferences on Web Intelligence (WI) and Intelligent Agent Technologies (IAT), 103–110. o.. DOI: 10.1109/wi-iat.2014.156 (2014). ISBN 978-1-4799-4143-8 
  6. Poslad, S (2007). „Specifying Protocols for Multi-agent System Interaction”. ACM Transactions on Autonomous and Adaptive Systems 2 (4), 15–es. o. DOI:10.1145/1293731.1293735.  
  7. Poslad, S. Agent-oriented middleware for integrating customer network services. In: Software Agents for Future Communication Systems, Hayzelden A, Bigham J Eds., 221–242. o.. DOI: 10.1007/978-3-642-58418-3_9 (1999)