Агентно-оријентисано програмирање

С Википедије, слободне енциклопедије

Агентно-оријентисано програмирање (АОП) је парадигма програмирања где је изградња софтвера фокусирана на концепту софтверских агената. За разлику од објектно-оријентисаног програмирања која има објекте (пружање метода са променљивим параметрима) у својој сржи, за АОП је екстерно одређивање агената (са интерфејсом и могућностима порука) у његовој сржи. Они се могу посматрати као апстракција објеката. Дописивања се тумаче примањем "агената", на неки специфичан начин за своју класу агената.

Историја[уреди | уреди извор]

Историјски концепт агенто-оријентисаног програмирања и идеје за центрирање свог софтвера око концепта агента први пут је употребио Јоав Шоам у својим студијама вештачке интелигенције, 1990.[1][2] Његови агенти су специфични за парадигме јер имају само једну методу, са једним параметром. По Шоавом раду из 1990. године основна разлика између АОП-а и ООП-а: ... агенто-оријентисано програмирање (АОП), које се може посматрати као специјализација објектно-оријентисаног програмирања. ...

OOП AOП
Основна јединица објекат агент
Параметри који дефинишу стање основне јединице слободан веровања, обавезе, способности, избори....
Процес рачунања пребацивање порука и одговори метода пребацивање порука и одговори метода
Врсте порука слободан обавештења, захтеви, понуду, обећања, одбијања....
Ограничења о методама један искреност, конзистентност....

Оквири[уреди | уреди извор]

Постоји више АОП оквира који се називају агент платформе које спроводе парадигме програмирања Схохам екипе. Следећи примери илуструју како се програмира основни агенс као Поздрав светског програма.

ЈАДЕ[уреди | уреди извор]

За Јава-платформе један од оквира је Јаде [3] (https://web.archive.org/web/20100621141053/http://jade.tilab.com/). Овде је основни пример [1] агента који ради код

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("Конструктор зове");
	}

}

У сржи Јаде АОП модела је да његов Апликациони програмски интерфејс подржава стандардне ФИПА Агент комуникационе Језике

Агент Говори (Џејсон)[уреди | уреди извор]

За буквалан превод агенто-оријентисаних концепата у шеме unobfuscated као што је Јаде, иза Јаве и објектно Orientedness, агент Говори[4](Џејсон) даје "природан" језик за агената.

	started.

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

САРЛ језик[уреди | уреди извор]

Сарл[5] (Сарл вебсајт) обезбеђује основне апстракције за кодирање мултиагент система. Он користи скрипте попут синтакси (инспирисане Скали и Руби).

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

Посредничко[уреди | уреди извор]

Један од начина да се спроведе модуларна или проширива АОП подршка је да се дефинишу стандардне АОП АПИс посредничке функције које се саме имплементирају ка софтверским агентима. На пример, директоријум услуга може се спровести као FIPA-е директоријум помагач или DF софтвер заступник; Управљање животног циклуса за почетак, престати, прекинути и обновити агената који може да се имплементира као FIPA-е агент за управљање услуга или АМС агент.[6] Корист од АОП приступа је да се подржи више динамичких улога између различитих корисника и пружаоца услуга и апликација, мрежа. На пример, традиционално, мрежа и услуге су углавном управљале мрежама и услугама у име купца и понуда као један виртуелни мрежни сервис, али купци и сами постају овлашћени да интегришу и управљају својим услугама. Ово се може постићи путем АОП-а и АПИ-а да посредничка средства могу флексибилно и динамички управљати комуникацијама.[7]

Види још[уреди | уреди извор]

Референце[уреди | уреди извор]

  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. стр. 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. стр. 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. стр. 221—242. 

Литература[уреди | уреди извор]

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