RAZPRAVE B Agenti ali samo še en objektno usmerjen pristop? Dejan Lavhič, Matjaž Gams Dejan,Lavbic@fn.um ij.si. MaLjazGarns@ijs.si Povzetek Agentno usmerjene tehnologije veljajo za najmodernejše in najbolj perspektivne pristope k razvoju programske opreme. Cilj agentnih tehnologij je predvsem izgradnja sistemov v dinamičnih in odprtih okoljih, v katerih se lahko prilagajajo spremembam i uporabu avtonomnih komponent V primerjavi z objekti lahko opazimo Številne podobnosti, vendar tudi Številne razlike, zaradi katerih je agente smiselno obravnavati ločeno od objektov. V ta namen so bile razvite številne metodologije. Zavedati se moramo, da gre za novo tehnologijo, ki jo v praksi pestijo številne uvajalne težav b, a ki|ub temu veliko obeta. Ključne besede: agent, objekt, objektno usmerjen pristop, agentno usmerjen pristop, metodologija Abstract Agents or no More than Another Object-Oriented Approach? Agent-uriented technologies are Dne of the most perspective and modern approaches to software development. The main goal of agent technologies is creating systems situated in a dynamic and open environment, being able to adapt to changes with the use of autonomous components. The comparison with objects identified several similarities, but there are still many distinct features that make different handling of objects and agent reasonable Several agent-oriented methodologies have been developed that help users cope with complexity of dynamic environments. Agents are a new technology with several introductory issues, but with a great potential. Keywords: agent, object, object-oriented approach, agent-oriented approach, methodology 1 Uvod Agentno usmerjeni informacijski sistemi so trenutno eno bolj odmevnih in pomemboih raziskovalnih področij na področju informacijske tehnologije. Agenta lahko preprosto opredelimo kot računalniški sistem, ki je sposoben prilagodljivega in avtonomnega delovanja v dinamičnem in nepredvidljivem okolju [28]. Odprta in dinamična okolja, v katerih morajo računalniški sistemi delovati, zahtevajo izboljšave tradicionalnih računalniških modelov in paradigem. Tako se je pojavila zahteva po določeni stopnji avtonomije, ki bi omogočala dinamično samostojno odzivanje na spremenljive okoliščine. Ueliko raziskovalcev je prepričanih, da so po objektna usmerjenem pristopu agenti ena pamemhnejŠih paradigem pri razvoju programske opreme. Koncept agenta se je izoblikoval iz različnih disciplin na področju informacijske tehnologije {slika 1) -računalniška omrežja, ra/.voj programske opreme, umetna inteligenca, porazdeljeni sistemi, pridobivanje in obvladovanje informacij, kontrolni sistemi, podpora odločanju, elektronsko poslovanje itd, V današnjem času, predvsem pri implementaciji, spletne storitve ponujajo nov način poslovanja s pomočjo standardiziranih orodij in podpirajo storitveno usmerjen pogled na neodvisne programske kompo- nente, ki s pomočjo medsebojnega sodelovanja prinašajo funkcionalno dodano vrednost. V podobnem kontekstu se uporabljajo agentne tehnologije, ki počasi prihajajo v ospredje. V nadaljevanju bo predstavljena opredelitev agentov, objektov in večagentnih sistemov ter opredelitev glavnih lastnosti. Predstavljene bodo najbolj pogosto omenjane lastnosti agentov in primerjava z objekti na ravni teh lastnosti in iz načrtovalskega stališča. Sledila bo predstavitev evolucije programskih jezikov in kako so se skozi čas spreminjali različni pristopi, vse od monolitnega pristopa do agentov in večagentnih sistemov. Ker nove tehnologije za razvoj informacijskih sistemov potrebujejo orodja in metodologije, bo primerjalno predstavljeno tudi tO področje. Poudarek bo na opredelitvi glavnih pojmov, ki se uporabljajo ter na genealogiji agentno usmerjenih metodologij. Pred koncem sledi še razdelek, v katerem so predstavljena mnenja analitikov o zrelosti agentno usmerjenega pristopa. 2 Agenti in objekti Opredelitev agentov ni trivialna, saj na tO področje obstajajo številni pogledi 113] z različnih področij. 162 U p o « A I! » A INFORMATIKA 3008 - številka 3 - lelmk XVI Dejan Lavbrč. Maljai Gams: Agenti ali samo še en objektno usmerjen Slika 1 flgentne tehnologije in poveiavs i drugimi področji I15I Ključni lastnosti agentov, ki ju vsi priznavajo, sta avtonomnost in proaktivnost. Druge lastnosti, kot sta npr. socialnost in mobilnost, so dodatne in opredeljujejo poseben podtip agenta, medtem ko nekaterih drugih lastnosti ne moremo označiti kot deterministične, saj si jih agenti delijo z objekti. V tem kontekstu je avtonomen agent neodvisna entiteta, ki se lahko povsem samostojno odloča o svojem načinu delovanja, Se posebno kako se odziva na zahteve drugih agentov. Za proaktivnega agenta velja, da lahko samostojno deluje brez vpliva navodil uporabnika. Zavedati se moramo, da se pri tej opredelitvi pojavijo določene težave, saj številni prispevki s področja reaktivnih agentov {listih, ki reagirajo na razmere brez modela sveta) po tej kategorizaciji ne spadajo med agente. Čeprav je vloga reaktivnih agentov na nekaterih področjih dominantna, je v realnosti večina agentov s proaktivnimi in reaktivnimi lastnostmi. Tako je uravnovešen je obeh delov ključni izziv za načrtovalce agentno usmerjenih informacijskih sistemov. Nekateri viri agente primerjajo z objekti, zlasti pri snovanju sistemov. Nekateri vidijo agente kot »pametne objekte« ali »objekte, ki lahko rečejo ne«. Intuitivno se zdi, da imajo agenti in objekti marsikaj skupnega. S takšno opredelitvijo je izvedljivost hibridnih agentno objektnih sistemov na dlani Spet drugi vidijo agente na veliko višji ravni abstrakcije, podobno kot strokovnjaki OO gledajo na komponente na več gran-u lam i h ravneh. lina od posledic te visokonivojske opredelitve je, da agenti sodelujejo v ciklusih sprejemanja odločitev. Za dosego tega je treba upoštevati tudi druge lastnosti na nižjih ravneh, kot so npr. vloge, ki jih opravljajo agenti, podoba agentov z mentalnim stanjem, kar vključuje spretnosti in odgovornosti ter tudi zmožnosti in sposobnosti. Ko govorimo o interakciji s pomočjo zaznav okolja in akcijami, ki jih izvedejo nad drugimi agenti ter okoljem, se ukvarjamo s pojmi, kot so zaznava, akcija, cilji in jeziki za komuniciranje med agenti. Sposobnost pogajanja vključuje Contract Net, strategije dražb in idejo tekmovanja ter sodelovanja. Nekateri avtorji [101 celo navajajo, da imajo socialni interaktivni večagentni sistemi v odprtem okolju večjo računsko moč kol univerzalni Turingovi stroji. Na podlagi omenjenega lahko objekt opredelimo kol entiteto, ki ograjuje stanje in je sposobna izvajanja akcij ali metod v okviru tega stanja ter medsebojno komunicira / drugimi entitetami s pomočjo izmenjave sporočil. Agent je po drugi strani računalniški sistem, ki izvaja avtonomne akcije z namenom doseganja načrtovanih ciljev. Opredelitev večagentnega sistema (MAS) prav tako ni preprosta. Kljub temu skoraj vse opredelitve, ki jih lahko najdemo v literaturi, MAS opredeljujejo kot sistem, ki je sestavljen iz sodelujočih agentov z namenom dosega individualnega ali skupnega cilja. S stališča razvoja programske opreme je ena najpomembnejših lastnosti MAS-a ta, da končna množica agentov v času načrtovanja ni znana (opredeljena je zgolj začetna množica), marveč se dokončno oblikuje šele pri izvajanju. To v praksi dejansko pomeni, da MAS temelji na odprtih arhitekturah, ki omogočajo novim agentom dinamično priključevanje v sistem in zapuščanje le-tega [4]. Največja razlika med pristopoma AO in OO je v tem, da lahko pri pristopu OO novi objekti algorilemsko prihajajo in zapuščajo sistem med izvajanjem, medtem ko lahko agenti lo počnejo avtonomno s svojim pn »aktiv ni m načinom delovanja, ki ni popolnoma napovedljiv oz,, algoritemsko vnaprej določljiv. MAS je sestavljen iz agentov (in rie objektov), tako da ima posledično tudi lastnosti agentov. Tako lahko kot ključne lastnosti MAS-a izpostavimo avtonomnost, situiranost, proaktivnost in socialnost. Izmed omenjenih je morda proaktivnost najbolj sporna, saj smo že prej omenili, da agenti delujejo tako p reaktivno kol tudi reaktivno. Poleg teh dveh lastnosti so še 2008 - številka 3 -letnik XVI u p u k a ti p, a. INFORMATIKA 163 Dejan Lavbič, Matjai Gamr. Agenti ali samo še en objektno usmerjen pristop? druge višjenivojske lastnosti, kot so prilagodljivost in vzdržljivost. V praksi agenti precej zaostajajo za definicijami, vendar ne glede na to, s katerimi lastnostmi opišemo agenta, se razlikuje od tradicionalnega objekta. Pri načrtovanju agentov pogosto uporabljamo pojme, kot je znanje, prepričanje, namt'n, obveznost, medtem ko objekte načrtujemo preprosto kot enkapsulacijo njihove notranje strukture v obliki metod in atributov [21 J. Definiciji agenta in objekta se zelo razlikujeta. Stopnja avtonomnosti agentov in objektov je zelo različna. Objekti nimajo nadzora nad svojim delovanjem, ker jih kliče zunanja entiteta. Agenti se prav tako lahko odločijo, ali bodo določeno akcijo izvedli ali ne. Za notranjo predstavitev znanja se pogosto uporabljajo ontologije, kar olajšuje izmenjavo znanja med agenti in tudi človeškim uporabnikom, V nadaljevanju bodo predstavljene razlike med objekti in agenti z vidika nekaterih lastnosti agentov, ki se omenjajo najbolj pogosto. 2.1 Avtonomnost Kol ključno lastnost agentov lahko izpostavimo avtonomnost kot sposobnost izvajanja akcij neodvisno od zunanjih entitet. Avtonomnost laže obravnavamo v obliki stopnje prisotnosti, kot pa če preprosto določimo, da je navzoča ali pa je ni. Za lažje razumevanje si predstavljajmo avtonomnost z dveh vidikov: dinamičnost in nedeterminističnost (slika 2). Dinamična avtonomnost se odraža v izvajanju aktivnosti na pasiven, reaktiven ali proaktiven način. Proaktivni agenti se glede na stanje okolja, dogodkov in sporočil, odločajo, katero akcijo bodo izvedli. Torej se agent lahko sam odloČi, kdaj bo izvedel akcijo. Objekti so po drugi strani pasivni, saj se klic metode zgodi v izvajalni niti entitete, ki je zahtevala to metodo. Koncept avtonomnosti zato težko povežemo z objekti, saj je njihovo izvajanje in klic dejansko odvisen od drugih komponent sistema. Kljub temu lahko najdemo v jezikih za modeliranje (npr. UML) in programskih jezikih (Java, .NET itd.) dogodkovno usmerjena ogrodja, ki omogočajo objektom večjo mero avtonomnosti. Pri nekaterih agentih se srečamo tudi z nedeter-minističnim avtonomnim delovanjem. Z vidika okolja se lahko delovanje agenta giblje od popolnoma predvidljivega do nena povedi ji vega. Objekti prav tako niso vedno popolnoma predvidljivi, čeprav objektno usmerjeni jeziki težijo k predvidljivem pristopu kot te- Proaklivno Ura Kolonija mravelj Agent preskrboval ne verige Reaktivno Pasivno Java/UML objekt Nakupovalni agent Mravlja Objekt ■c Nedeterminističnost Predvidljivo Nepričakovano Slika 2: Primerjava ravni avtonomnosti pri objektih in agentih meljni filozofiji sistema. Na primer, ko se objektu pošlje sporočilo, se metoda, ki sporočilo obdela, klice popolnoma predvidljivo. Res je, da je lahko v metodi opredeljeno, ali se zahteva obdela ali ne, in če se obdela, kako. Kljub temu se v splošni praksi v primeru, da objekt zavrne sporočilo, to obravnava kot napaka, medtem ko pri agentih ni tako. Delovanje agenta je nedeterministično tudi zato, ker je enkapsulacija pri agent no usmerjenem pristopu obravnavana bolj nejasno. Lahko se zgodi, da zahtevani način delovanja, ki ga opravi agent, sploh še ni znan. To je zelo jasna razlika med objekti in agenti, saj objektni jeziki omogočajo delo le z objekti, ki podpirajo določen vmesnik. Pri objektnem pristopu zato kodiranje dinamičnega delovanja postane težje, saj mora programer natančno poznati vmesnik objekta, s katerim bo komuniciral. V objektno usmerjenem svetu prav tako ne obstajajo mehanizmi za »objavo« vmesnikov, medtem ko se pri agentih uporabljajo drugi mehanizmi, kot je storitev objave in prijave, registracijski protokol, storitev rumenih, zelenih in belih strani itd. Pri agentih medsebojna komunikacija poteka asinhrono, kar pomeni, da ne obstaja točno določen kontrolni tok od enega agenta do drugega. Agent lahko avtonomno spremeni način delovanja in ne samo, ko prejme sporočilo. Zelo pomembna je tudi podpora 1 upcnisHi INFORMATIKA 2008 - številka 3 - letnik XVI Dejan Lavbič. Matjaž Gam;. Agenti aLi samo še en objektno usmerjen pristop? paralelnemu procesiranju, ki je v objektnem svetu po navadi implementiran nad objektnim modelom in objektno usmerjenim okoljem. Pri agentih so objekli in paralelizem povezani v skupen model. 2.2 Vzajemno delovanje Ravno tako kot avtonomnost vzajemno delovanje najlaže predstavimo v obliki stopnje interakcije. Objekti npr. pri vzajemnem delovanju uporabljajo najbolj preprosto obliko - klic metode. Bolj zapletena interakcija je odziv na zaznane dogodke v okolju, medtem ko v večagentnih sistemih najdemo najbolj zapleteno obliko - večkratno in vzporedno vzajemno delovanje z drugimi agenti (družba agentov). Enostavno (Raven interakcije) ^ Kompleksno Sliku 3 Primerjav« ravni vzajemnega delovanja pri objektih in agentih Sporočilo pri objektu /.a zahtevo izvedbe operacije lahko zahteva izvajanje samo éne operacije. Pogoj je tudi, da je poslano sporočilo točno določene oblike. Pri medsebojni komunikaciji med agenti se uporablja Agent Communication Language (ACL), ki je vsebinsko bolj bogat kot objektno usmerjeni. Medtem ko lahko ACL vsebuje niz poljubne oblike, ki je že vseeno skladen s formalno sintakso, mora objektno usmerjena metoda vsebovati parametre, katerih število in zaporedje je fiksno, jezik ACL je tako nujno potreben za komunikacijo med agenti in včasih med agenti in f ask << agent >> Borznl-posrednlk reply I < Borzni-streznik (ask :sonder Horzni-posrednik :content (CENA KRKG ?cena) ¡receiver Borzni-strezni k :reply-with KRKG-kotacIja ¡language LRPHOLOG ¡ontology LJSE-kotacije i (reply ¡sender Bor¿n¡-strežnik xontent (CENA KRKG 967.42) :recelver Borzni-posredni k :ln-reply-to KRKG-kotacija ¡language LRPROLOG ¡ontology LJSE-kotacije Ï Slika 4: Primer komunikacije FIPA-AEl ii domene bortnega poslovanja objekti. V praksi se najbolj pogosto uporabljata standardizirana formata KQML in FIPA ACL. S pomočjo omenjenih jezikov lahko agenti medsebojno komunicirajo, pri tem uporabljajo semantiko v obliki on-lologij in sodelujejo v vzorcih sodelovanja (protokoli pogajanja, kot je npr. Contract Net). Agenti se poleg enostavnih klicev metod uporabljajo pri dolgotrajnem vzajemnem delovanju. Prav tako lahko vzporedno sodelujejo pri večkratnih transakcijah s pomočjo uporabe večnitnega pristopa. Vsaka vzpostavljena seja pridobi enolični identifikator. Z običajni objektnimi jeziki težko zadostimo takšnim zahtevam, vendar se moramo zavedati, da se objekti kljub iemu lahko uporabljajo kot elementi za izmenjavo pri komunikaciji med agenti. Pri komunikaciji med agenti nam jezik ACL. omogoča uporabo številnih načinov medsebojnega delovanja, ki niso standardni. Lahko npr. opredelimo osrednjega posrednika, ki odpošilja zahteve določenim dobaviteljem storitev na podlagi algoritma. Ta algoritem pa je lahko neodvisen od tipa vmesnika in je npr. odvisen od cene ali dostopnosti. Prav tako je pri agentih dokaj preprosto opredeliti entiteto za zagotavljanje anonimnosti pri zahtevah storitev, Z močno tipizirani modeli, kot so ČORBA, KM1 in Jini, lahko podpremo takšne vzorce, vendar je to veliko bolj zahtevno kot z uporabo agentnih tehnologij. 2.3 Druge lastnosti V praksi sta avtonomnost in vzajemno delovanje ključni lastnosti pri razlikovanju objektov in agentov. Vendar so še številne druge lastnosti, po katerih se agenti razlikujejo od objektov. Lastnosti na ravni instanc. Vsak objekt vsebuje lastnosti, ki so opredeljene v pripadajočem razredu. Podobno analogijo najdemo tudi v a gen t nem svetu, vendar agenti lahko imajo (ali jih spremenijo) poleg Vnaprej določenih še druge lastnosti, ki niso opredeljene na razredni ravni, marveč na ravni posameznega agenta (instance). To je recimo zelo priljubljeno pri genetskem programiranju, pri katerem potomcu vsak od staršev prispeva del genov, medtem ko se potomec kasneje uči naprej. Takšen pristop najdemo pri večagentnih sistemih na področju umetnega življenja (slika 1). Večkratna in dinamična klasifikacija. Pri objektnih jezikih je objekt instanca razreda. Ko objekt enkrat kreiramo, ne more spremeniti svojega razreda oz. postati instanca kakšnega drugega razreda (razen pri 2008 - številka 3- letnik XVi V F » K * 1 K* INFORMATIKA 165 Dejan Lavbič. Maljai Gam- Agenti ali samo še en objektno usmerjen pristop? dedovanju). Pri agentih imamo ria voljo bolj prilagodljiv pristop, saj ima lahko neki agent v določenem trenutku več vlog - oseba, zaposleni, zakonski partner, stranka ipd. Ce agenta odstranimo z delovnega mesta, vsi podatki, povezani s to vlogo, agentu niso več na voljo. Tako agent ostaja ves čas ista entiteta z različnim naborom lastnosti. Tudi v objektnem svetu obstaja pojem opredelitve vlog, vendar večina jezikov OO tega mehanizma ne podpira neposredno, kljub temu da ga podpira UML, Prav tako imajo lahko agenti različne vloge na različnih področjih delovanja (vloga zaposlenega v službi in vloga zakonskega partnerja doma). Analogija z naravo. Avtonomni in interaktivni značaj agentov je veliko bliže naravnim sistemom kot pa objekti. Agenti lahko delujejo v skladu z lastnostmi žajedavstva, simbioze ali posnemanja. Prav tako so lahko del reprodukcije, v kateri sledijo Da rw i novim načelom. Družba agentov odraža politične in organizacijske posebnosti, npr. način organizacije, ki je lahko anarhičen ali demokratičen. Narava torej ponuja številne ideje, ki jih lahko uporabimo pri načrtovanju večagentnih sistemov. 3 Razvojni pristopi in programski jeziki Slika 5 prikazuje evolucijo programskih jezikov od monolitnega, modularnega, objektno in agentno usmerjenega pristopa. Najprej je bila osnovna enota celoten program, nad katerim je imel programer popoln nadzor. Programer je bdi odgovoren za stanje programa, medtem ko je za klice skrbel sistemski operater. Takrat ni bilo mogoče govoriti o modulih, saj še ni bil znan koncept ponovne uporabljivosti. Zaradi naraščajoče kompleksnosti programov so programerji uvedli določeno mero organiziranosti. To je pripeljalo do modularnega pristopa, pri katerem je bita koda organizirana v manjše enote, te pa je bilo mogoče uporabiti v različnih rešitvah. V tem obdobju procedur je bilo stanje enote določeno od zunaj s pomočjo argumentov, klici pa so bili prav tako zunanji. Objektno usmerjen pristop je modularnemu dodal tako obvladovanje segmentov kode kot tudi dostop do lokalnega nadzora nad spremenljivkami, do katerih dostopajo metode. Kljub temu v tradicionalnem objektno usmerjenem pristopu objekte obravnavamo kot pasivne, saj pride do klica njihovih metod le takrat, ko jim neka zunanja entiteta pošlje sporočilo. Agenti, kot zadnja stopnja v tem pregledu, pa imajo svoj nadzor nad izvajanjem, pri katerem je poleg načina delovanja in stanja lokaliziran tudi njihov klic. Način delovanja enote Ne-modularen Modularen Modularen Modularen Stanje enote Zunanje Zunanje Notranje Notranje Klic enote Zunanji Zunanji (klic) Zunanji (sporočilo) Notranji (pravila, cilji) Monolitni Modularni Objektivno Agentno pristop pristop usmerjeni usmerjeni pristop pristop Stika 5: Evolucija programerskih pristopov [25] Takšni agenti imajo določena pravila in cilje, zato jih nekateri imenujejo tudi aklivni objekti, Kdaj in kako bo agent sprožil neko akcijo, je tako določeno s strani agenta [161. 4 Metodologije Številne agentno usmerjene (AO) metodologije (npr. Caia, Tropos itd.) uporabljajo idejo Človeške organizacije (razdeljeno v podorganizacije), v kateri agenti igrajo eno ali več vlog in vzajemno sodelujejo med seboj, Strukture in modeli človeške organizacije se zato uporabljajo za načrtovanje MAS (podrobneje je to predstavljeno z arhitekturnimi vzorci v metodologiji Tropos in organizacijskimi modeli v MAS-Com-monKADS). Koncepti, kot so vloge, socialna odvisnost in organizacijske vloge, se ne uporabljajo samo za modeliranje okolja, v katerem bo sistem deloval, marveč tudi za sam sistem. Z organizacijsko naravo MAS je ena najpomembnejših aktivnosti v metodologiji AO opredelitev interakcij in modelov sodelovanja, ki opisujejo socialna razmerja in odvisnosti med agenti in vlogami, ki jih imajo v sistemu. Modeli sodelovanja in interakcij so po navadi zelo abstraktni in so dejansko določeni z implementacijo interakcijskih protokolov v kasnejših fazah načrtovanja. Čeprav je Shoham paradigmo agentno usmerjenega programiranja (AOP) predstavil že pred več kot desetimi leti v svojem delu [23], v praksi še vedno ni jezikov AO za razvoj MAS. V zadnjih letih je bilo razvitih nekaj orodij, ki podpirajo implementacijo agentov in večagentnih sistemov, vendar nobeno od njih 1ÓÓ umorabna INFORMATIKA 2008- številka 3 - letnik XVI Dejan Lavbič, Matjai Gamr. Agenti ali samo še en objektno usmerjen pristop? ne temelji no agentno usmerjenem jeziku. Obstajajo sicer agentni jeziki za medsebojno komunikacijo med agenti, kol sta KQML in F1PA-ACL. Zelo zanimiv in dolg seznam orodij za razvoj agentov se nahaja na spletni strani Agent Lin k.1 Trenutna razvojna orodja temeljijo najavi in za implementacijo uporabljajo objektno usmerjeno paradigmo. Metodologije AO po navadi niso usmerjene v fazo implementacije, čeprav jih večina poda smernice za to. Najbolj uporabljani razvojni orodji sla JACK [1 ] in JADE [2], 4.1 Kaj je agentno usmerjena metodologija Metodologija je sestavljena iz dveh pomembnih komponent: prva opisuje procesne elemente pristopa, druga pa jeosredinjena na produkte in dokumentacijo. Predvsem druga je bolj vidna pri sami uporabi metodologije, kar je razlog, da se jezik za modeliranje OO - UML | 18], tako pogosto (in napačno) enoti / vsemi »koncepti OO« ali se ga celo opisuje kot metodologija. Jezik za modeliranje, kot je ta ali na drugi strani AUML [17], ki je usmerjen v agentno usmerjeni razvoj, vsekakor prinaša dodano vrednost, vendar ima omejeno področje delovanja v kontekstu metodologije. Poudarki na strani produktov metodologije se razlikujejo med avtorji. Nekateri uporabljajo UML/ AUML, medtem ko se drugi tega izogibajo zaradi nezadostne podpore konceptom, vezanim na agente, in zato uporabljajo svojo notacijo in koncepte. Pri uporabi diagramov iz družine UML se od bralca pričakuje, da je seznanjen s takšno grafično notacijo, v nasprotnem primeru avtorji opredelijo notarijsko množico ikon, ki se uporablja v tem posebnem metodološkem pristopu. Vsaka metodologija mora podpirati zadostno stopnjo abstrakcije, da lahko v celoti modeliramo agente in MAS. Izkazalo se je, da so preproste nadgradnje metodologij OO preveč omejujoče, saj so osredinjene samo na objekte. Po drugi strani pa imamo pri metodologijah AO {agentno usmerjenih) organizirane skupnosti agentov, ki igrajo določene vloge v svojem okolju. V takšnem večagentnem sistemu agenti vzajemno delujejo glede na protokole, ki jih opredeljujejo vloge agentov. Prav tako se moramo vprašati, kaj za metodologijo pravzaprav pomeni, da je «agentno usmerjena«, v istem smislu kot govorimo o metodologiji OO v kontekstu objektne tehnologije. V metodologiji OO za opis 1 http:/Avww. agenti i nk.org metodologije uporabljamo koncepte OO, ki se v nadaljevanju uporabijo za izgradnjo objektno usmerjenih sistemov, V nasprotju pri metodologiji AO v splošnem nimamo v mislih metodologije, ki je zgrajena iz agentno usmerjenih konceptov, marveč je le usmerjena k izgradnji agentno usmerjene programske opreme. 4.2 Genealogija metodologij Agentno usmerjene metodologije imajo zelo razvejene korenine. Nekatere temeljijo na idejah umetne inteligence (Ul), druge so neposredne izpeljanke iz obstoječih metodologij OO, nekatere pa poskušajo z združevanjem teh dveh konceptov predstaviti inova-tiven pristop, vendar vseeno dopuščajo ideje OO, ko je to potrebno. Slika 6 prikazuje vplive oz, genealogijo metodologij AO. Številne metodologije priznavajo neposredno uporabo celotnih metod OO. Avtorji MaSE |9, 27| še posebno priznavajo prej omenjene vplive [12] in AAII j 13], katero je prav tako močno zaznamovala metodologija OO OMT [221. Prav tako so se pri načrtovanju metodologije Gaia |28| avtorji zgledovali po metodologiji OO Fusion [7|. Kot osnova pri izgradnji metodologij AO sta bila uporabljena tudi druga dva pristopa OO. RUP fl4| je nastopil kot osnova za ADELFE [3] in MESSAGE ¡6], pri katerih je z vplivi drugega nastal tudi INGFN1AS [20], Pri novejši metodologiji RAP [24] se je kot vhodni element pri izgradnji poleg RUP-a pojavil tudi AOR [26]. Zelo zanimiv je pristop OPEN, ki je v veliki meri razširil pristop OO razvoja s podporo agentom ter dobi) ime Agent OPEN [8], Na koncu pa moramo omeniti še dve metodologiji, ki sla nastali pod neposrednim vplivom metodološkega pristopa OO. Promctheus 119] sicer ni čisto neposredni naslednik OO, vendar predlaga uporabo diagramov in konceptov OO takrat, ko ti obstajajo in so združljivi z agentno usmerjeno paradigmo. Podobno je z metodologijo PASSI, ki združuje ideje OO in MAS in uporablja notacijo UML. Od drugih se nekako razlikuje metodologija MAS-CommonKADS [ 11 ], saj je edina, ki temelji pretežno na konceptih Al, čeprav avtorji trdijo, da so na razvoj močno vplivale tudi metodologije OO. Poleg omenjenih metodologij so tudi metodologije, ki ne priznavajo neposrednih povezav s pristopi, kol sta OO ali AO. Ena od teh metodologij je Tropos 15], ki poudarja predvsem zgodnje modeliranje ¡¿008 številka 3 letnik XVI upnridna informatika 167 I H'j ari Ljvbic, Matjaž Gam Agenti ali samo £e en objektno usmerjen pristop? MAS-Common KADS (+AI/KE) Passi D C Prometheus Slika G: Neposredni in posredni vplivi objektno usmerjenenih metodologij na agent na usmerjene metodologije zahtev, Osredinjena je na opisovanje ciljev, ki poleg obravnave vprašanj tipa »kaj« in »kako«, odgovarjajo tudi na vprašanja tipa »zakaj«. Tropos med drugim uporablja za modeliranje jezik i" (še posebno v fazi analize in načrtovanja), kar ga razlikuje od drugih, ki za notacijo večinoma uporabljajo Agent UML oz. AUML To tudi pomeni, da razmišljanje, drugačno od OO, omogoča uporabnikom Troposa v metodološkem smislu inovativen pristop k modeliranju agentov. 5 Mnenja analitikou Slika 7 prikazuje Gartnerjevo analizo različnih tehnologij in aplikacij s področja agentov. Na področju infrastrukture se pojavlja jezik za izvajanje poslovnih proces, BPEL, s približno I - do 5-odstotno prodornostjo trga. Spletne storitve v osnovni obliki za opredelitev storitev in integracijo med aplikacijami s pomočjo SOAPin VVSDL rastejo k fazi razjasnitve, saj jih podpirajo že vsi večji ponudniki ter dosegajo 20 do 5U odstotkov prodornosti. Napredne spletne storitve za doseganje večje kakovosti, ki naj bi omogočale napredne kritične poslovne funkcije s pomočjo standardov SOAP, VVSDL, UDDI, WS-Security in WS-K, so odvisne predvsem od standardov in še niso tako podprte s strani večjih ponudnikov informacijske tehnologije. Semantični splet se nahaja prav v vrhu pričakovanj, predvsem s transformacijsko vlogo, vendar je njegova prodornost na trgu zgolj 1 odstotek. Podobno vlogo imajo tudi trgovalni grid sistemi za podporo virtualrdm organizacijam in se tudi nahajajo na začetku cikla. Inteligentni agenti so bili v preteklosti precenjeni kot rezultat prevelikih pričakovanj in premalo aplikacij, vendar vedno bolj postajajo zanimivi spletni in uporabniški agenti, ki dosegajo tja do 5 odstotkov tržnega deleža. V vseh primerih agentov je vedno govor o t, i. »lahkih« agentih, pri čemer se še vedno Čaka na glavnino uporabe agentno usmerjenih tehnologij. Primer je npr. agentno usmerjena integracija, ki se ukvarja s porazdeljenimi aplikacijami, ki zahtevajo določeno mero avtonomnosti in prilagodljivosti. V tem primeru je komercialna tehnologija relativno nova, na tem področju pa so številni manjši projekti in manjše število sodelujočih. Gartner ocenjuje prodornost na trgu na 1 odstotek načrtovane. Glede na položaj semantičnega spleta to niti ni presenetljivo, 6 SKLEP Agenti so avtonomne entitete, ki lahko vzajemno delujejo z. okoljem, v katerem se nahajajo. Ali so agent- 168 upoaabna INFORMATIKA ?D08 ■ številki. 3 - letnik XVI Dejan Uvbič. Matjai Cam:. Agenti atl samo še en objektno usmerjen pristop? Pojav Vrh prenapihnjenega Streznitev Rast k Plato tehnologije pričakovanja razjasnitvi produktivnosti Slika 7 Gartnerjeu iretoitni model m agentne tehnologije ne tehnologije kljub temu zgolj objektne tehnologije z dodatnimi lastnostmi ali predstavljajo popolnoma drugačen pristop? Na idejni ravni so razlike med objektnimi in agentnimi tehnologijami zelo signifikant-ne, v praksi nekaj manjše, a še vedno pomembne. Agentne tehnologije bodo prišle v širšo uporabo šele takrat, ko bodo na voljo strategije za migracijo iz drugih obstoječih okolij. Razvijalci programske opreme pri razvoju agentov svetujejo, da pri implementaciji izhajamo in temeljimo na sistemih OO. Številne strukture in dele agentov lahko dokaj preprosto izrazimo z objekti, npr. imena agentov, komponente jezika za medsebojno komunikacijo med agenti (kodiranje, ontologije, elementi podatkovnega slovarja itd.), vzorce medsebojnega delovanja idr. Pri načrtovanju in razvoju informacijskih rešitev lahko izbiramo med številnimi možnostmi obeh pristopov. Lotimo se lahko celo implementacije sistemov, pri kateri so agenti sestavljeni iz objektov in agentov ter obratno. 7 Uiri in literature [ IJ AOS JACK Intelligent Agents User Guide dostopno na: http://vwrtv.jackagents.com/docs/jack/html/index.html. [2] Bellifemine, F,, et al. JADE Administrator's guide. Posodobljeno 10. 11. 2006; dostopno na: http://jade.tilab.com/cioc/administratorsguide.pd). [3} Bernon, C.. et al. The ADELFE Methodology for an Intranet system design, v zborniku Agent-Oriented Information Systems (AOIS 2002J'. 2002. Bologna, Italy. [4] Bezek, A.. Avtomatsko modeliranje vecagentnih sistemov, v Faculty ol Computer and In format ion Systems. 2006, University of Ljubljana: Ljubljana. Sir. 144, [5] Bresciani, P., et al., Tropos: An Agent-Oriented Software Development Methodology. Autonomous Agents and Multi-Agent Systems, 2004. 8(3): sir. 203-236. [6] Caire, G,, et al.. Agent Oriented Analysis using Message/ UML Lecture Notes in Computer Science, 2001. 2222: str, 119-135. |7] Coteman, D., et al,, Object-oriented development: The Fusion me!hod. 1994. New York, USA: Prentice Hall. [8] Debenham, J. K in B. Henderson-Sellers, Designing agent-based process systems - Extending the OPEN Process Framework. Intelligent Agent Software Engineering. 2003: str 160-190. 2008 številka 3 - IptmkXVI UPOBABNA NFOHMATIKA 169 L.ovliič, Matjaž Gamr Agenti ali ^nio en objektno usmerjen pristop? 195 De Loach, S. A. Multiuser it Systems Engineering: A Methodology and Language for Designing Agent Systems, v zbomiku First International Bi-conterence, Workshop on Agent-Oriented Information Systems (AOIS'99)'. 1999, Seattle. [10] Gams. M., Weak Intelligence: Through the Principle and Paradox of Multiple Knowledge. Advances in Computation: Theory and Practice Vol fi. 2001. Huntington: Nova Science. [11) Iglesias, C. A., et ai., Analysis and Design of Muitiagent Systems using MAS-CommonKADS, v Agent Theories, Architectures, and Languages. 1998. p 313-327 [121 Kendall, E. A. Agent software engineering with role modelling, v zborniku First international workshop, AOSE 2000 on Agent-Oriented Software Engineering . 2001 Limerick, Ireland. [13] Kinny, D., M. Georgelt, in A, Rao. A methodology and modelling techniques for systems of BDI agents, v zborniku T" European workshop on Modelling autonomous agents in a multi-agent world' 1996. Einhove, The Netherlands. [141 Krutchen, P., The Rational Unified Process: An Introduction - 2na edition. 1994: Addison Wesley, [151 Luck, M., et a)., Agent Technology: Computing as Interaction - A Roadmap for Agent Based Computing. 2006. str. 110, [16] Odell, J.. Objcctsand Agents Compared. Journalol Object Technology, 2002. 1(1): str, 41-53. [17J Odell, J., H V Parunak, in B, Bauer. Extending UML for Agents v zborniku ' Agent-Oriented Information Systems Workshop at the IT" National Conference on Artificial Intelligence'. 2000. Austin. USA [18] OMG. OMG Unified Modeling Language specification, version 1.4. dostopno na: ftttP://www.omq.org. [19] Padgham, L. in M Winikotf. Prometheus: A Methodology for developing intelligent agents, v zborniku ' Internation Conference on Autonomous /A gen is (AAMAS'2002)'. 2002, Botogna, Italy. [20] Pawn, J,. J, Gomez-Sanz, in R. Fuentes, The INGENIAS methodology and fools 2005. Idea Group [21 ] Rah wart, I., R. Kowlczyk, in Y. Yang. Virtual Enterprise Design - BDI Agents vs. Objccts. v zborniku /Advances in Artificial Intelligence'. 2000. 122] Rumbaugh, J,, el at, Object-oriented modeling and design. 1991. New York. USA: Prentice Halt. [23] Shoham. Y,. Agent-Oriented Programming. Artilicial Intelligence, 1993, 60(1): str. 51-92. [24] Taveter, K. in G. Wagner Agent-Oriented Enterprise Modeling Based on Business Rules, v zbomiku International conference on Conceptual Modeling (EH2001)'. 2001. Yokohama. Japan, [25] van Dyke H , P., ' Go to the Ant': Engineering Principles from Natural Agent Systems. Annals of Operations Research, 1997(75): str. 69-101. [26] Wagner. G in K Taveter Towards Radical Agent-Oriented Software Engineering Processes Based on AOR Modeling v zborniku Intelligent Agent Technology (IAT.04)'. 2004. Washington, USA. [27] Wood. M F. In S. A. De Loach. An overview of the muitiagent systems engineering methodology, v zborniku First International workshop, AOSE 2000 on Agent-Oriented Software Engineering'. 2001. Limerik, Ireland. [28] Woo id ridge, M , An Introduction to Multi Agent Systems. 2002, Chichester. England: John Wiley & Sons. □elan Lavbič |r Ista 2004 diplomiral na področju računalništva in informatike na Fakulteti za računalništvo in informatiko Univerze v Ljubljani, kjer je trenutno doktorski kandidat in zaposlen kot mladi raziskovalec. Na raziskovalnem področju se ukvarja z inteligentnimi agenti, večagfintnimi sistemi, ontologijami, poslovnimi pravili in semantičnim spletum. Predvsem ga zanima uporaba tehnologij semantičnega spleta v poslovnih aplikacijah. Sodeloval je pri Številnih gospodarskih in raziskovalnih projektih s področja strateškega planiranja, metodologij razvoja Informacijskih sistemov, uporabe inteligentnih agentov in prenove ter avtomatizacije poslovnih procesov. m Mat|až Gams |e raziskovalni svetnik in vodja odseka za inteligentne sisteme na inštitutu Jožef Stefan. Predava inteligentne sisteme na nekaj fakultetah, med drugim na Ekonomski fakulteti in Fakulteti za računalništvo in informatiko v Ljubljani. Učil je tudi na PEF. F D V. FM, FPP. VSUP. en semester leta 2002 tudi na University of Applied Sciences v Nemčiji, Od leta 1990 je urednik revije Informatlca, član uredniških odborov več mednarodnih revij (AICOM, IDA, KAiS Idr), član programskih odborov Številnih priznanih mednarodnih konferenc. Je ustanovitelj in dva mandata predsednik Društva za kognitivne znanosti, večletni predsednik Društva za umetno inteligenco, sou stan ovite 11 Inženirske akademije Slovenca in njen prvi tajnik, sedaj tajnik in predstavnik slovenske Al v IFIR predsednik ACM Slovenija, član več nacionalnih svetov (za informatizacijo Šolstva, za informacijsko družbo, sedaj za znanost in tehnologijo) Bil je podpredsednik sindikata SVIZ in predsednik oz. podpredsednik konference visokega šolstva in znanosti pri SVIZ. Ukvarja se z inteligentnimi sistemi, informacijsko družbo, umetno inteligenco, inteligentnimi agenti, kugnitivnimi znanostmi. Ob|avil je več kot 350 del. pretežno znanstvenih člankov in referatov Sodeloval je pn nekaj na|odmevna|ših aplikacijah inteligentnih sistemov v Sloveniji, 170 UPORABNA INFORMATIKA 2008 - Šlevilka 3 - letnik XVI