Agentno-orijentisano programiranje

Agentno-orijentisano programiranje (AOP) je paradigma programiranja gde je izgradnja softvera fokusirana na konceptu softverskih agenata. Za razliku od objektno-orijentisanog programiranja koja ima objekte (pružanje metoda sa promenljivim parametrima) u svojoj srži, za AOP je eksterno određivanje agenata (sa interfejsom i mogućnostima poruka) u njegovoj srži. Oni se mogu posmatrati kao apstrakcija objekata. Dopisivanja se tumače primanjem "agenata", na neki specifičan način za svoju klasu agenata.

Istorija uredi

Istorijski koncept agento-orijentisanog programiranja i ideje za centriranje svog softvera oko koncepta agenta prvi put je upotrebio Joav Šoam u svojim studijama veštačke inteligencije, 1990.[1][2] Njegovi agenti su specifični za paradigme jer imaju samo jednu metodu, sa jednim parametrom. Po Šoavom radu iz 1990. godine osnovna razlika između AOP-a i OOP-a: ... agento-orijentisano programiranje (AOP), koje se može posmatrati kao specijalizacija objektno-orijentisanog programiranja. ...

OOP AOP
Osnovna jedinica objekat agent
Parametri koji definišu stanje osnovne jedinice slobodan verovanja, obaveze, sposobnosti, izbori....
Proces računanja prebacivanje poruka i odgovori metoda prebacivanje poruka i odgovori metoda
Vrste poruka slobodan obaveštenja, zahtevi, ponudu, obećanja, odbijanja....
Ograničenja o metodama jedan iskrenost, konzistentnost....

Okviri uredi

Postoji više AOP okvira koji se nazivaju agent platforme koje sprovode paradigme programiranja Shoham ekipe. Sledeći primeri ilustruju kako se programira osnovni agens kao Pozdrav svetskog programa.

JADE uredi

Za Java-platforme jedan od okvira je Jade [3] (https://web.archive.org/web/20100621141053/http://jade.tilab.com/). Ovde je osnovni primer [1] agenta koji radi kod

package helloworld;
import jade.core.Agent;

public class Hello extends Agent {

	protected void setup() {
		System.out.println("Здраво свете. ");
		System.out.println("Моје име је "+ getLocalName());
	}

	public Hello() {
		System.out.println("Конструктор зове");
	}

}

U srži Jade AOP modela je da njegov Aplikacioni programski interfejs podržava standardne FIPA Agent komunikacione Jezike

Agent Govori (Džejson) uredi

Za bukvalan prevod agento-orijentisanih koncepata u šeme unobfuscated kao što je Jade, iza Jave i objektno Orientedness, agent Govori[4](Džejson) daje "prirodan" jezik za agenata.

	started.

	+started <- .print("Здраво свете. ").

SARL jezik uredi

Sarl[5] (Sarl vebsajt) obezbeđuje osnovne apstrakcije za kodiranje multiagent sistema. On koristi skripte poput sintaksi (inspirisane Skali i Rubi).

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

Posredničko uredi

Jedan od načina da se sprovede modularna ili proširiva AOP podrška je da se definišu standardne AOP APIs posredničke funkcije koje se same implementiraju ka softverskim agentima. Na primer, direktorijum usluga može se sprovesti kao FIPA-e direktorijum pomagač ili DF softver zastupnik; Upravljanje životnog ciklusa za početak, prestati, prekinuti i obnoviti agenata koji može da se implementira kao FIPA-e agent za upravljanje usluga ili AMS agent.[6] Korist od AOP pristupa je da se podrži više dinamičkih uloga između različitih korisnika i pružaoca usluga i aplikacija, mreža. Na primer, tradicionalno, mreža i usluge su uglavnom upravljale mrežama i uslugama u ime kupca i ponuda kao jedan virtuelni mrežni servis, ali kupci i sami postaju ovlašćeni da integrišu i upravljaju svojim uslugama. Ovo se može postići putem AOP-a i API-a da posrednička sredstva mogu fleksibilno i dinamički upravljati komunikacijama.[7]

Vidi još uredi

Reference uredi

  1. ^ Shoham, Y. (1990). Agent-Oriented Programming (Technical Report STAN-CS-90-1335). Stanford University: Computer Science Department. 
  2. ^ Shoham, Y. (1993). Agent-Oriented Programming. Artificial Intelligence. str. 51—92. CiteSeerX: 10.1.1.123.5119. 
  3. ^ Bellifeminee, Fabio; Poggi, Agostino; Rimassa, Giovanni (2001). JADE: a FIPA2000 compliant agent development environment. Proceedings of the fifth international conference on Autonomous agents. str. 216—217. 
  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. ^ Sebastian Rodriguez, Nicolas Gaud, Stéphane Galland, 2014. SARL: a general-purpose agent-oriented programming language. In the 2014 IEEE/WIC/ACM International Conference on Intelligent Agent Technology. Warsaw, Poland: IEEE Computer Society Press.
  6. ^ Poslad, S (2007). „Specifying Protocols for Multi-agent System Interaction”. ACM Transactions on Autonomous and Adaptive Systems (TAAS). 4 (4). doi:10.1145/1293731.1293735. 
  7. ^ Poslad, S; J. Pitt; A. Mamdani; R. Hadingham; P. Buckle (1999). Agent-oriented middleware for integrating customer network services. In: Software Agents for Future Communication Systems, Hayzelden A, Bigham J Eds. str. 221—242. 

Literatura uredi

  • Shoham, Y. (1990). Agent-Oriented Programming (Technical Report STAN-CS-90-1335). Stanford University: Computer Science Department.