Lähes 20 vuotta ECAI’94:ssä pidetyn agenttiteorioita, -arkkitehtuureja ja -kieliä käsitelleen 1. työpajan (ATAL’94) jälkeen, jonka monet olettavat olleen intensiivisen agenttijärjestelmätutkimuksen alkusysäys, pyysimme eräitä alan merkittävimpiä ja aktiivisimpia tutkijoita kertomaan näkemyksiään muutamista ohjelmistoagentteihin liittyvistä perustavanlaatuisista kysymyksistä.
Costin Badican, Lars Braubachin, Giancarlo Fortinon ja Giovanni Rimassan vastaukset antavat varsin kootun kuvan agenttien ja moniagenttijärjestelmien tutkimuksen tilasta ja tulevaisuudennäkymistä sekä niiden tulevista sovelluksista.
- Bios
- Kysymyksiä
- Vastaukset
- Kysymys 1: Missä agenttijärjestelmiä koskeva tutkimus on tällä hetkellä ja mihin se on menossa? Mitkä ovat tähän mennessä suurimmat onnistumiset ja epäonnistumiset, ja mitkä ovat tärkeimmät opit?
- Giovanni Rimassa
- Costin Badica
- Giancarlo Fortino
- Lars Braubach
- Kysymys 2: Mitkä ovat menestyneimpiä ohjelmisto-agenttien sovelluksia reaalimaailmassa? Mitkä ovat niiden seuraavat sovellusalueet, ja ovatko ihmiset valmiita olemaan vuorovaikutuksessa ohjelmistoagenttien kanssa jokapäiväisessä elämässään?
- Lars Braubach
- Giancarlo Fortino
- Costin Badica
- Giovanni Rimassa
- Kysymys 3: Mikä on näkemyksesi agenttistandardeista? Onko FIPA:n nykyinen asema IEEE:n elimenä tyydyttävä, vai tarvitaanko jotain muuta?
- Giovanni Rimassa
- Costin Badica
- Giancarlo Fortino
- Lars Braubach
- Kysymys 4: Mitä puuttuu vielä agenttialustojen, -kielten ja -työkalujen alueelta?
- Giancarlo Fortino
- Lars Braubach
- Costin Badica
- Giovanni Rimassa
Bios
Costin Badica on professori tietokoneiden ja tietotekniikan laitoksella Craiovan yliopistossa Romaniassa. Hän on väitellyt tohtoriksi ohjausjärjestelmistä Craiovan yliopistossa. Hänen tutkimusintressinsä ovat tekoälyn, hajautettujen järjestelmien ja ohjelmistotekniikan rajapinnassa. Hän on julkaissut yli 100 lehtiartikkelia, kirjan lukua ja konferenssiesitelmää, yli 10 vierailevana toimittajana toimitettua lehden erikoisnumeroa sekä useita toimitettuja kirjoja. Ota häneen yhteyttä osoitteessa [email protected].
Lars Braubach on vanhempi tutkija ja projektipäällikkö Distributed Systems Groupissa Hampurin yliopistossa. Hän on suorittanut tohtorin tutkinnon tietojenkäsittelytieteessä Hampurin yliopistossa. Hänen tutkimuksensa tähtää hajautettujen sovellusten kehittämisessä käytettävien ohjelmistoteknisten keinojen parantamiseen ja teknologian siirtoon tutkimuksesta teollisuuteen. Hän on mukana keksimässä aktiivisten komponenttien lähestymistapaa, jossa yhdistyvät agentit, joilla on komponentti- ja palveluominaisuuksia, ja hän on ollut yksi Jadex-agenttialustan ydinarkkitehdeistä vuodesta 2003. Hän on tukenut useita teknologiansiirtohankkeita teollisuuskumppaneiden, kuten Daimlerin ja Uniique AG:n, kanssa ja julkaissut yli 80 artikkelia kansainvälisissä seminaareissa, konferensseissa ja lehdissä. Ota häneen yhteyttä osoitteessa [email protected].
Giancarlo Fortino on tietotekniikan apulaisprofessori Calabrian yliopiston (Unical) tietotekniikan, mallintamisen, elektroniikan ja järjestelmien laitoksella (DIMES), Rende, Italia. Hän on väitellyt tietotekniikan tohtoriksi Unicalista. Hänen tutkimusintresseihinsä kuuluvat hajautettu tietojenkäsittely, langattomat sensoriverkot, ohjelmistoagentit, pilvilaskenta ja multimediaverkot. Hän on kirjoittanut yli 200 julkaisua lehdissä, konferensseissa ja kirjoissa, ja tällä hetkellä hän toimii Journal of Networks and Computer Applications-, Engineering Applications of Artificial Intelligence-, Information Fusion- ja Multi Agent and GRID Systems -lehtien toimitusneuvostoissa. Hän on yksi Unicalin spin-off-yrityksen SenSysCalin perustajista ja toimitusjohtaja. SenSysCal kehittää innovatiivisia sensoripohjaisia järjestelmiä sähköiseen terveydenhuoltoon ja domotiikkaan. Hän on IEEE:n seniorijäsen. Ota häneen yhteyttä osoitteessa [email protected].
Giovanni Rimassa on tuotepäällikkö Whitestein Technologiesilla. Hän on väitellyt tietotekniikan tohtoriksi Università degli Studi di Parmasta. Hänen ammatillisiin kiinnostuksen kohteisiinsa kuuluvat älykkäiden liiketoimintaprosessien hallinta, agenttien väliohjelmistot, tuoteinnovaatiot ja teknologian siirto. Hän on toiminut agenttialalla aktiivisesti vuodesta 1997 lähtien, jolloin hän teki uraauurtavaa työtä JADE-alustan parissa, ja hän on julkaissut yli 60 artikkelia lehdissä ja konferensseissa. Hän on IEEE:n ja IEEE Computer Societyn jäsen. Ota häneen yhteyttä osoitteessa [email protected].
Kysymyksiä
- Missä agenttijärjestelmien tutkimus on nykyään ja mihin se on menossa? Mitkä ovat tähän mennessä suurimmat onnistumiset ja epäonnistumiset, ja mitkä ovat tärkeimmät opit?
- Mitkä ovat ohjelmistoagenttien menestyneimmät sovellukset reaalimaailmassa? Mitkä ovat niiden seuraavat sovellusalueet, ja ovatko ihmiset valmiita olemaan vuorovaikutuksessa ohjelmistoagenttien kanssa jokapäiväisessä elämässään?
- Millainen on näkemyksesi agenttien standardeista? Onko FIPA:n nykytila IEEE:n elimenä tyydyttävä, vai tarvitsemmeko jotain muuta?
- Mitä vielä puuttuu agenttialustojen, -kielten ja -työkalujen alueelta?
Vastaukset
Kysymys 1: Missä agenttijärjestelmiä koskeva tutkimus on tällä hetkellä ja mihin se on menossa? Mitkä ovat tähän mennessä suurimmat onnistumiset ja epäonnistumiset, ja mitkä ovat tärkeimmät opit?
Giovanni Rimassa
Valittuani ammatillisen polkuni näinä 20 vuotena, jonka aikana siirryin akateemisesta tutkimuksesta teolliseen tutkimukseen ja sen jälkeen tuotehallintoon ja innovointiin, en ryhdy yksityiskohtaiseen arvioon agenttijärjestelmien tutkimuksesta ylipäätään, jonka muut voivat tehdä paljon arvovaltaisemmin. Keskityn mieluummin sellaisiin seikkoihin kuin alan tutkimuksen yleiseen vaikutukseen tai teknologian siirtoon ja mahdolliseen käyttöönottoon ohjelmistorakentamisen laajalla areenalla.
Erityisestä havainnointipisteestäni käsin moniagenttijärjestelmien tutkimuksesta on selvästi tullut melko kypsä ala. 90-luvun buumin jälkeen tieteenala näyttää asettuneen paikoilleen. Nykyään ei varmaankaan ole yhtä kätevää valita väitöskirjan aihetta yleisistä agenttiperiaatteista, eikä ole helppoa saada vaikkapa EU-rahoitusta agenttiteknologian infrastruktuuria tai avoimien järjestelmien testialustoja käsittelevälle tutkimushankkeelle. Kun otetaan huomioon tämä kypsyystaso, odotan, että agenttijärjestelmien tutkimuksessa jatketaan tulevaisuudessa teoreettista tutkimusta, jossa sovelletaan matematiikkaa ja perustietotekniikkaa moniagenttijärjestelmiin liittyviin kaavamaisiin ongelmiin, mutta soveltavampien ja insinöörikeskeisempien alojen on erikoistuttava ja keskityttävä entistä enemmän alaan. Viimeaikaisen maailmantilanteen innoittamana esimerkkinä voidaan mainita agenttipohjaisen simuloinnin soveltaminen taloudellisten ja rahoituksellisten riskien arviointiin ja päätöksentekoon. Lisäksi Yhdysvaltain kansallisen turvallisuusviraston (NSA) maailmanlaajuiseen vakoiluun liittyvien viimeaikaisten skandaalien myötä ihmiset saattavat alkaa muistaa, että Internetin piti olla pikemminkin vertaisverkko, hajautettu järjestelmä kuin valtava pyramidijärjestelmä, jossa käyttäjät luovuttavat tietonsa – ja nykyään jopa laskutoimituksensa – pienelle joukolle valtavia tietotekniikkayhtiöitä, joiden vastuullisuus on kyseenalainen. Siksi on mahdollista ja jopa todennäköistä, että tietojenkäsittelyn keskeiset aiheet, jotka koskevat verkottumista (todellista vertaisverkkoa varten) ja ohjelmointikieliä (rinnakkaisohjelmoinnin helpottamiseksi moniytimisillä prosessoreilla), lähentyvät entistä enemmän agenttijärjestelmien ideoita hyvin pragmaattisista syistä.
En voi sanoa, että ohjelmistoagenttitutkimus olisi ollut täysin menestyksekästä, ja viime vuosina olen jopa kuullut useita lausuntoja moniagenttijärjestelmien lopullisesta epäonnistumisesta – tosin yleensä ilman selkeitä motiiveja (hauskin tapaus oli erään autonomista tietojenkäsittelyä käsittelevän konferenssin pääpuhujalta). Uskon, että tulos on itse asiassa ristiriitainen ja vaatii jonkin verran tarkennusta. Agenttiteknologian suurimmat onnistumiset liittyvät joihinkin sen keskeisiin käsitteisiin ja siihen, miten ne ovat ennakoineet ja joissakin tapauksissa jopa ajaneet valtavirran tietojenkäsittelyn kehitystä. Jos verrataan tämän päivän tyypillistä tietotekniikkamaisemaa siihen, miltä se näytti vuonna 1994, huomataan, että monet piirteet, joita tutkijat tuolloin kannattivat moniagenttijärjestelmissä, ovat nyt arkipäivää:
- Asynkroninen viestipohjainen viestintä;
- Kompleksiset, strukturoidut skeemat viestien hyötykuormille;
- Ubiquitous concurrency;
- Sijoitetut mobiililaitteet, joilla on paljon kontekstiherkkää tietoa;
- mobiilikoodi; ja
- yhteiskuntatieteellisten ideoiden lisääntynyt käyttö ohjelmistojen suunnittelussa (organisaatiomallit, sosiaaliset verkostot, yhteistoiminnallinen ongelmanratkaisu, pelillistäminen).
Alalla, jolla toimin – eli liiketoimintaprojektien hallintaohjelmistoissa eri alojen yrityksille – kehitys kulki perinteisistä middleware-näkemyksistä ihmiskeskeiseen liiketoimintaprosessien hallintaan (jossa BPM-sovellukset tarjoavat artefakteja, joilla parannetaan ihmisten välistä yhteistyötä) nykyisiin suuntauksiin, joissa tunnustetaan ja korostetaan sitä, että BPM-ohjelmistojen on tuotava mukanaan jonkin verran omaa älykkyyttä ja mukautuvuutta, jotta ne voivat tukea voimaantunutta tietämystietoa omaavaa työntekijää. Suunniteltu lopputulos ei ole mitään muuta kuin moniagenttijärjestelmät, joissa osa ihmis- ja osa ohjelmistoagenteista tekee yhteistyötä liiketoimintaprosessien edistämiseksi.
Kiinnostavin epäonnistumiskohta on ehkä se, että agenttiteknologiasta ei koskaan tullut ”seuraavaa OOP:tä” (toisin sanoen hallitsevaa ohjelmointityyliä). Minusta on erityisen ironista, että monet kutsuvat nyt funktionaalista ohjelmointia pelastukseksi osoittaessaan oliopohjaisten lähestymistapojen rajoja. Agenttijärjestelmien – jotka ottavat siirtoja toimijaohjelmointimallista – pitäisi olla ilmeinen askel eteenpäin OOP:stä rinnakkaisissa ja hajautetuissa ympäristöissä (perussuunnittelu ”design by contract” mitätöityy, kun mukana on useampia suoritussäikeitä).
Näkemykseni mukaan kaksi pääasiallista tekijää on osaltaan estänyt agenttiteknologiaa tulemasta hyväksytyksi valtavirtaan kuuluvaksi OOP:n kehitykseksi. Ensinnäkin tutkimusyhteisö ei ollut erityisen ohjelmoijakeskeinen; koska se oli pääasiassa kiinnostunut algoritmeista, protokollista ja muodollisista kehyksistä, ohjelmistotekniikan painopiste oli metodologioissa ja väliohjelmistoissa. OOP-yhteisöön verrattuna ohjelmointikielten ja kehitystyökalujen alalla ei tehty paljoakaan. Tilanne on kuitenkin osittain muuttunut, ja oma alayhteisö pyrkii nyt vakiinnuttamaan ohjelmistoagenttien aseman ohjelmointiparadigmana.
Toiseksi, ja mikä ehkä vielä tärkeämpää, teknologian siirto teollisuuden ammattilaisille tai satunnaisille ohjelmoijille on heikentynyt merkittävästi. Vielä nykyäänkin suurin osa moniagenttijärjestelmiin perehtyneistä ihmisistä on osallistunut akateemiseen tutkimukseen tai (nuorempien osalta) saanut aiheesta yliopistokursseja. Vertaa tätä oliosuuntautuneisuuteen, jossa useat ihmis- ja laitostasot välittävät, toistavat ja joskus vääristelevät ydintutkimuksen perustuloksia. Esimerkiksi Factory Method -mallia soveltava ohjelmoija ei useinkaan edes tiedä alkuperäisestä kirjasta Gang of Four (E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1994). Samaa ei mielestäni voi sanoa esimerkiksi Contract Net Protocolista.
Costin Badica
Suuri osa nykyisestä tutkimuksesta on levinnyt moniagenttijärjestelmien formaalin mallintamisen ja logiikan, peliteorian (ja siihen liittyvien aiheiden, kuten mekanismien suunnittelun) ja oppimisen alueille. Kiinnostusta on myös viereisillä aloilla, kuten robotiikassa ja simuloinnissa.
Peliteoria ja oppiminen ovat mielestäni lupaavimpia alueita. Formaalilogiikka on mukavaa, mutta todelliset sovellukset ovat rajallisia. Robotiikassa ja simuloinnissa on myös kiinnostusta sovelluksiin.
Välttämättä agenttikeskeinen ohjelmointi on hyvin kaukana siitä, mitä alun perin odotettiin. Agenttisuuntautunut ohjelmistotekniikka on myös melko kaukana valtavirtaisesta ohjelmistotekniikasta.
On tärkeää arvioida autonomisten agenttien (AA) ja moniagenttijärjestelmien (MAS) tutkimuksen tuloksia terveen tietojenkäsittelytieteen kontekstissa. Meidän ei pitäisi kohdella niitä kuin jotain ”eksoottista”, vaan arvioida niitä tietojenkäsittelytieteen sääntöjen mukaan. Agentteja ei pitäisi käsitellä vain uutena teknologisena paradigmana vaan myös monimutkaisten järjestelmien analysointi- ja suunnittelumenetelmänä. Loppujen lopuksi agenttiparadigman avulla suunniteltu järjestelmä voidaan toteuttaa uusimmilla tekniikoilla, ei välttämättä agenttien väliohjelmistoilla tai alustoilla. Agenttialustat voivat kuitenkin olla erittäin hyödyllisiä simuloinnissa ja prototyyppien luomisessa.
Giancarlo Fortino
Tutkijat keskittyvät pääasiassa samoihin asioihin kuin 10 vuotta sitten: tarjoamaan menetelmiä ja algoritmeja (luonnollisten ja keinotekoisten) kompleksisten järjestelmien mallintamiseen ja analysointiin eri näkökulmista. Agenttien sovellusalueet ovat tietysti muuttuneet jonkin verran, kun uusia teknologioita ja sovellusalueita on ilmestynyt.
On vaikea sanoa, mihin ala on menossa. Itse asiassa uskon, ettei yhtä ainoaa suuntaa ole olemassa. Tutkijat keskittyvät samoihin tärkeisiin teoreettisiin yhteyksiin (formaalit kielet, insinöörimetodologiat, neuvottelualgoritmit, peliteoria, simulaatio-ohjattu emergentti käyttäytymisanalyysi ja niin edelleen), ja joskus he siirtyvät uusille sovellusalueille – esineiden internet on tämänhetkinen esimerkki – ratkaistakseen erityiskysymyksiä ”agentteja” hyväksikäyttämällä.”
Kahdeksankymmenen vuoden jälkeen meillä ei vieläkään ole yhtenäistä agenttimallia – mikä on vähentänyt agenttikeskeisen toimintatavan vetovoimaisuutta erityisesti muissa kuin yliopistollisissa yhteyksissä. Toisaalta tutkimusta (ja jonkin verran kehitystyötä) on tehty huomattavan paljon, ja monia algoritmeja ja menetelmiä on itse asiassa saatavilla käytettäväksi monenlaisissa (myös ei-agenttisuuntautuneissa) sovellusalueissa. Lisäksi agenttiparadigman tehokkuus hajautettujen ja monimutkaisten järjestelmien mallintamisessa on ehkä sen suurin menestys.
Agenttiparadigma on tehokas käsiteltäessä avoimia dynaamisia hajautettuja monimutkaisia järjestelmiä. Se ei kuitenkaan ole ”tappaja-paradigma”, vaikka tutkijat ovat menestyksekkäästi ehdottaneet menetelmiä, algoritmeja ja järjestelmiä eri abstraktiotasoilla. Joitakin, kuten Java Agents Development framework (JADE), on jopa käytetty todellisissa teollisissa sovelluksissa eikä vain akateemisissa yhteyksissä.
Lars Braubach
Agenttijärjestelmiä koskeva tutkimus tulee monesta eri suunnasta. Siksi agenttitutkimuksen alusta lähtien on syntynyt monia erilaisia määritelmiä termille agentti, jotka ovat keskittyneet esimerkiksi tekoälyyn, ohjelmistotekniikkaan, henkilökohtaisiin avustajiin ja mentalistisiin käsitteisiin (inhimillisiin ominaisuuksiin, kuten uskomuksiin ja tavoitteisiin, kun niitä käytetään ohjelmisto-agenttien kuvaamiseen). Lisäksi agenttitutkimukseen kuuluu monia eri aihealueita. Tämä tutkimuksen laaja kirjo on yksi moniagenttijärjestelmien suurimmista vahvuuksista, mutta se on myös perustavanlaatuinen ongelma. Se on vahvuus, koska sitä tukeva yhteisö on laaja ja edistystä saavutetaan monilla eri osa-alueilla toisistaan riippumatta. Toisaalta tämä laaja-alaisuus johtaa luonnollisesti alan heterogeenisuuteen, mukaan lukien ohjelmointikielten ja työkalujen kaltaiset artefaktit, mikä kaikki vaikeuttaa tulosten arviointia. Käsitykseni mukaan tutkimuksen painopiste on siirtynyt huomattavasti alkuajoista.
Alkuvuosina agenttipohjainen ohjelmistotekniikka oli hyvin aktiivinen tutkimusalue (innoittamana esimerkiksi Yoav Shohamin uraauurtava artikkeli agenttipohjaisesta ohjelmoinnista), ja tutkijat ehdottivat monia agenttiohjelmointikieliä, -työkaluja ja -menetelmiä. Mutta kun SE:n perusteet vakiintuivat ja vaikutukset käytännössä jäivät vähäisiksi, sen suhteellinen merkitys tutkimusyhteisössä väheni. Nykyään on havaittavissa muodollisten perusteiden ja moniagenttisten suunnittelu-, oppimis- ja koordinointitekniikoiden painottuminen (indikaattorina voidaan käyttää esimerkiksi 12th International Conference on Autonomous Agents and Multiagent Systems -konferenssin hyväksyttyjä julkaisuja).
Moniagenttijärjestelmien tärkeä menestys on muutos ajattelussa siitä, miten monimutkaisia järjestelmiä tarkastellaan. Se kannustaa hajautettuihin arkkitehtuureihin ja edustaa ensimmäistä hajautetuille järjestelmille omistettua paradigmaa. Yksi agenttitutkimuksen suuri epäonnistuminen on kyvyttömyys vakiinnuttaa agentit hyväksytyksi SE-kehitysparadigmaksi. Huolimatta huomattavista alkuvaiheen ponnisteluista tekniikka ei ole juurikaan tavoittanut ohjelmistoalan ihmisiä agenttiyhteisön ulkopuolella. Mielestäni tämä epäonnistuminen johtuu suurelta osin siitä, että agenttipohjaisen ohjelmistotekniikan ja vakiintuneiden olio- ja komponenttiorientoituneiden paradigmojen välillä on suhteellisen suuri käsitteellinen etäisyys.
Tämä etäisyys ilmenee eri tasoilla yksittäisten agenttien ohjelmointikielissä ja agenttien organisointi- ja koordinointitekniikoissa. Tärkein kritiikkini koskee kuitenkin oletusta, jonka mukaan agenttien tulisi kommunikoida vain asynkronisilla puheaktiopohjaisilla viesteillä. Tämä tekee agenttiteknologiasta kelvottoman monille käytännön toimijoille, jotka vaativat eksplisiittisiä järjestelmien rajapintoja ja menetelmien allekirjoituksia. Tässä tapauksessa käsitteellinen vaatimus, jonka mukaan agentti on pidettävä itsenäisenä, tulkitaan väärin liian teknisellä tavalla. Useat tunnustetut tutkijat ovat huomanneet viestipohjaisen viestinnän ongelman, ja työ vaihtoehtojen parissa on johtanut useisiin erilaisiin ehdotuksiin, kuten sitoutumiseen ja tavoitteisiin perustuviin vuorovaikutussuhteisiin, artefakteihin ja aktiivisiin komponentteihin.
Osaamieni opetusten osalta vastaukseni tulee hyvin henkilökohtaisesta ohjelmistosuunnittelun näkökulmasta, sillä olen kehittänyt aktiivisesti agenttisovelluksia ja -alustaa vuodesta 2003 lähtien. Minulle tärkeä opetus on, että agenttiteknologiaa on yksinkertaistettava ja tuotava lähemmäs oliosuuntautuneisuutta ja SOA:ta, jotta siitä tulisi käytännössä käyttökelpoista. Tämä tarkoittaa, että tutkijoiden olisi pyrittävä vähentämään heterogeenisuutta ja monimutkaisuutta sen sijaan, että ne lisääntyvät jatkuvasti keksimällä uusia lähestymistapoja kaikilla tasoilla. Tällä hetkellä agenttiohjelmistot eivät sovellu hyvin monimutkaisten järjestelmien nopeaan prototyyppien luomiseen, koska niihin liittyy liikaa valmistelevia toimia, kuten protokollan ja ontologian suunnittelua.
Kysymys 2: Mitkä ovat menestyneimpiä ohjelmisto-agenttien sovelluksia reaalimaailmassa? Mitkä ovat niiden seuraavat sovellusalueet, ja ovatko ihmiset valmiita olemaan vuorovaikutuksessa ohjelmistoagenttien kanssa jokapäiväisessä elämässään?
Lars Braubach
Vastoin kuin vuoden 2005 agenttiteknologian tiekarttaennusteessa, jossa ennustettiin agenttiteknologian hidasta, mutta jatkuvasti paranevaa käyttöönottoa (valtavirran saavuttamista vuodesta 2010 alkaen), todelliset käyttöönotot eivät ole lisääntyneet näkyvästi, ja edelleen on asennettu vain muutama reaalimaailman sovellus. Hyvä uutinen on, että monet alkuperäisistä agenttiyrityksistä, kuten Intelligent Automation (Cybele), Whitestein (Living Systems), TILAB (JADE), AOS (JACK), Cougaar Software ja SOAR Tech, soveltavat edelleen menestyksekkäästi agenttiteknologiaa erikoistuneilla markkinasegmenteillä, kuten televiestinnässä, logistiikassa, työnkuluissa, autonomisten ajoneuvojen ohjauksessa, satelliittiohjauksessa ja älykkäissä tukijärjestelmissä.
Proseduraalinen päättelyjärjestelmä (PRS) – BDI-järjestelmien alkulähde – kehitettiin NASA:ssa ja sitä sovellettiin menestyksekkäästi useisiin avaruussovelluksiin, muun muassa avaruussukkulan reaktio-ohjausjärjestelmän vianhakujärjestelmään. Myös NASA:n lennonvalvontaohjelmisto toteutettiin agenttisuuntautuneesti Brahms-kehyksen avulla.
Simulointi on toinen vahva sovellusalue moniagenttijärjestelmille. Esimerkiksi Massive Softwaren luoma elokuvakohtausten luominen keinotekoisilla näyttelijöillä Taru sormusten herrasta oli vaikuttava näyteikkuna agenttisimulointiteknologian soveltamisesta.
SOAR-kognitiivisen arkkitehtuurin käyttö (sotilaallisissa) koulutussovelluksissa on myös huomionarvoista, koska se osoittaa, miten agentit voivat tehokkaasti simuloida ihmisten käyttäytymistä reaalimaailman skenaarioissa. Sotilasalalla on useita muita agenttiteknologian käyttökohteita. Eräs poikkeuksellinen esimerkki on erittäin monimutkainen logistiikan hallintaohjelmisto DARPA-rahoitteisessa UltraLog-hankkeessa, joka johti Cougaar-agenttialustan kehittämiseen.
Autonominen ja pilvilaskenta, big data -skenaariot ja robotiikka ovat yleensä hyvin lupaavia aloja. Uskon, että älykkäät pilvi-infrastruktuuri kuin palvelu (IaaS) ja alusta kuin palvelu (PaaS) -ohjausohjelmistot voisivat hyötyä suuresti agenttiteknologiasta – esimerkiksi täysin hajautetussa koordinoinnissa. Tästä mahdollisuudesta huolimatta suuret pilvipalveluntarjoajat, kuten Google ja Amazon, käyttävät ratkaisuissaan kuitenkin muita vaihtoehtoja agenttien sijaan.
Big data -skenaariot, joihin tyypillisesti liittyy hajautettua tietojenkäsittelyä, tarjoavat muita mahdollisuuksia. Robotiikassa ongelmat siirtyvät yhä useammin yhden robotin näkökulmasta monen robotin näkökulmaan. Tässä moniagenttitekniikalla on hyvät mahdollisuudet yhdistyä hedelmällisesti robottien käyttöjärjestelmäohjelmistoihin.
Vuorovaikutus autonomisten järjestelmien kanssa vakiintuu yhä paremmin. Esimerkiksi useilla verkkosivustoilla on jo nyt avatareja, jotka jäljittelevät ihmisen neuvonantajia. Vuorovaikutus virtuaalihahmojen kanssa ei tietenkään välttämättä tarkoita, että kulissien takana käytettäisiin agenttiteknologiaa.
Giancarlo Fortino
Onko olemassa yhtään menestyksekästä agenttipohjaista (varsinaisessa mielessä) sovellusta? Ehkä voimme viitata webcrawlereihin, jotka eivät ole ohjelmisto-agentteja varsinaisessa mielessä, tai JADE:iin, joka on todellakin alusta sovellusten rakentamiseen. Monia agenttipohjaisia sovelluksia on olemassa eri aloilla, mutta ”onnistuneita” sovelluksia on vaikea tunnistaa. Seuraavia agenttien sovellusalueita ovat todennäköisesti älykkäät kaupungit ja esineiden internet. Mitä tulee vuorovaikutukseen ohjelmistoagenttien kanssa, uskon käyttäjien sopeutuvan niihin, jos ne integroidaan interaktiivisiin käyttöliittymiin. Ihmiset käyttävät jo Facebookia, Twitteriä ja monia muita sovelluksia. Se riippuu käytettävyydestä ja käyttötiheydestä.
Costin Badica
Simulointi ja turvallisuus ovat todennäköisiä alueita agenttisovelluksille. Ihmiset eivät kuitenkaan luultavasti ole vielä valmiita olemaan vuorovaikutuksessa agenttien kanssa jokapäiväisessä elämässä. Meidän pitäisi myös tarkastella, mitä perinteinen ihmisen ja tietokoneen käyttöliittymän (HCI) tutkimus vaatii ja yrittää ymmärtää, mitkä tulokset sopisivat tai voitaisiin soveltaa ihmisen ja agentin vuorovaikutukseen.
Giovanni Rimassa
Ohjelmistoagentteja on sovellettu käytännössä monilla aloilla. Omasta kokemuksestani voin mainita Whitesteinin logistiikkaratkaisun, jota DHL on ottanut käyttöön 27 maassa; uskon, että se on käyttäjämäärältään suurin koskaan tuotantokäyttöön otettu moniagenttijärjestelmä. Saamme myös erittäin hyvää vastakaikua agenttipainotteiselle liiketoimintaprosessien hallintasarjallamme (BPM) rahoituspalvelu- ja valmistusteollisuudessa.
Vaikka sarjamme on jo nyt menestyksekäs, BPM-ohjelmistojen alalla kokonaisuutena ei ole vielä omaksuttu nimenomaisesti agentti-ideoita. Tästä huolimatta Gartner muutti viime vuonna BPM-suiteja koskevaa Magic Quadrant -nelikenttäänsä ja otti käyttöön älykkään BPMS:n (lyhyesti iBPMS) käsitteen, ja syyskuussa 2013 uutisoitiin, että Jim Sinurilla (joka ajoi iBPMS-ajatuksia Gartnerilla), Jim Odellilla (entinen FIPA:n puheenjohtaja) ja muilla on kirja BPM:n seuraavasta aallosta, joka heidän sanojensa mukaan on agenttikeskeinen BPM. Laittaisin liiketoimintaprosessien hallinnan agenttiteknologian seuraavien sovellusalueiden kärkeen. Muita alueita tulee agenttipohjaisen simuloinnin käytöstä, joka johtuu big datan ja nopean adaptiivisen päätöksenteon korostamisesta: viimeisten kahden-kolmen vuoden aikana olemme saaneet pyyntöjä energia-, ilmailu-, avaruus- ja rahoitusalan yrityksiltä, jotka kaikki etsivät monimutkaisia päätöksenteon tukijärjestelmiä, joissa on merkittävät simulointiominaisuudet.
On hyvin vaikea arvioida, kuinka valmiita käyttäjät ovat johonkin teknologiaan. Toisaalta, jos teknologia tuo todellisen innovaation, käyttäjät eivät voi määritelmän mukaan olla valmiita. Siitä huolimatta tavat, joilla ihmiset konkreettisesti käyttävät uusia työkaluja, antavat palautetta, joka puolestaan muokkaa näitä työkaluja: väärinkäyttö ja väärinkäyttö ovat menestyksen tunnusmerkkejä. Olen varovaisen optimistinen, sillä näen monitahoisen skenaarion, jossa on monia mahdollisuuksia ja jossa poliittiset ja sosiaaliset suuntaukset, eivät niinkään keskeiset teknologiset piirteet, vaikuttavat eniten. Mielenkiintoista on, että Gartnerin tämänvuotisessa Emerging Technologies Hype Cycle -julkaisussa keskitytään kehittyvään ihmisen ja koneen väliseen suhteeseen.
Kysymys 3: Mikä on näkemyksesi agenttistandardeista? Onko FIPA:n nykyinen asema IEEE:n elimenä tyydyttävä, vai tarvitaanko jotain muuta?
Giovanni Rimassa
Agenttiteknologian standardit ovat yleisesti ottaen yhtä hyödyllisiä kuin muillakin tietojenkäsittelytieteen ja tietotekniikan osa-alueilla. Niiden tehokkuus riippuu paljon muustakin kuin teknisten spesifikaatioiden laadusta, kuten tukikonsortioista, verkostovaikutuksista ja helppoudesta sulautua muihin vallitseviin käytäntöihin ja teknologioihin. Väliohjelmistojen osalta tämä viimeinen seikka on vielä tärkeämpi.
FIPA:n (Foundation for Intelligent Physical Agents) määrittelyistä suurin osa oli järkeviä vuonna 2000, jolloin valtavirtainen tietotekniikka ei oikein ymmärtänyt agentti-infrastruktuurin vaatimia käsitteitä; nykyään maailma ei ole vain edennyt eteenpäin, vaan se on edistynyt juuri FIPA:n suosittelemaan suuntaan. Siksi olisi turhaa paitsi käyttää vanhoja standardeja sellaisenaan, myös yrittää päivittää niitä luodaksemme oman mausteemme siitä, mitä kaikki muut tekevät jo muutenkin.
FIPA:n sijoittaminen IEEE:n yhteyteen on erittäin hyvä veto organisaation ja uskottavuuden kannalta, mutta haluaisin FIPA:n muotoilevan alkuperäisen tehtävänsä (yhteentoimivuus) uudelleen maailmassa, jossa agenttialustojen ja -ympäristöjen peruspalvelut ovat jo itsestäänselvyys. Ensimmäisenä askeleena pitäisi olla aukkoanalyysi: mitä sellaista ei vielä ole, joka tekisi moniagenttijärjestelmistä helpommin toteutettavia konkreettisissa sovelluksissa? Mitkä tämän luettelon elementit hyötyisivät kolmannen osapuolen standardoinnista? Toisaalta viimeisin ja muistaakseni aktiivisin FIPA:n työryhmä keskittyi metodologiaan ja suunnitteluprosessiin, mikä tuntuu hieman laittavan kärryt hevosen eteen.
Costin Badica
Meidän ei välttämättä tarvitse noudattaa FIPA:n kaltaisia standardeja. Niiden leviäminen oli suosittua ”yhteentoimivuuden aikakaudella”. Mielestäni FIPA on OK, mutta en usko, että lisää standardeja tarvitaan.
Giancarlo Fortino
Meillä on, sanotaanko, ”standardeja”, mutta agentit eivät ole vahvasti uppoutuneet kaupalliseen tai teolliseen maailmaan – joten tarvitsemmeko tässä tapauksessa todella standardeja? FIPA on ollut jäädytettynä sen jälkeen, kun Budapestissä vuonna 2005 päätettiin siirtää se IEEE:hen. Ajattelin – ja ajattelen edelleen – että FIPA ja itse agenttiteknologia eivät olleet tarpeeksi kypsiä siirrettäväksi IEEE:hen. Mielestäni meidän on käynnistettävä järjestö uudelleen (ehkä eri nimellä, vaikka FIPA onkin jo tunnettu agenttiyhteisössä) (lähes) vapaaehtoisena, jos haluamme luoda kriittisen massan agenttien standardointiin – mutta ehkä ketään ei kiinnosta!
Lars Braubach
Standardit ovat aina tärkeitä, jotta voidaan edistää teknologian hyväksyntää ja vapauttaa asiakkaat mahdollisesta toimittajan sitoutumisesta. Agenttiteknologioiden osalta FIPA-standardit käsittelevät ensisijaisesti agenttien välistä viestintää ja varmistavat, että eri agenttialustat voivat kommunikoida keskenään. Vuonna 2013 maailmalla ei yksinkertaisesti ole tätä ongelmaa, koska vain muutama agenttisovellus on käytössä eikä agenttialustojen maailmanlaajuista verkostoa AgentCitiesin hengessä ole olemassa. Niinpä nämä standardit ovat käytännössä suurimmaksi osaksi merkityksettömiä. Lisäksi verkkopalvelutekniikalla on onnistuttu saavuttamaan yhteentoimivuus hajautetuissa järjestelmissä. Tältä osin on erittäin tärkeää, että agenttialustat voivat saumattomasti ulkoistaa toimintoja verkkopalveluina ja käyttää olemassa olevia verkkopalveluja integroituakseen muihin järjestelmiin. Tähän kuuluvat WSDL (Web Service Definition Language) -standardi sekä kasvava määrä REST-verkkopalveluja, sillä suuret toimijat, kuten Google ja Yahoo, tarjoavat yhä enemmän REST-rajapintoja. Mielestäni uusi puhtaita agenttistandardeja koskeva aloite ei juurikaan edistä tekniikan käyttöönottoa, koska sillä puututaan merkityksettömään ongelmaan. Sen sijaan tarvitsemme ensisijaisesti standardeja, jotka ehdottavat integrointia vakiintuneisiin teknologioihin.
Kysymys 4: Mitä puuttuu vielä agenttialustojen, -kielten ja -työkalujen alueelta?
Giancarlo Fortino
Meiltä puuttuu paljon. Mielestäni meidän on sovellettava ja arvioitava niitä. Teollisuusmaailmassa meidän on tietysti keskityttävä (rajalliseen) joukkoon referenssimalleja ja niihin liittyviä CASE-työkaluja (mukaan lukien referenssimenetelmä). Mielestäni tämä on avain agenttiteknologian laajempaan hyväksyntään.
Lars Braubach
Minä uskon, että useita asioita puuttuu – alkaen agenttiohjelmointikielistä, jotka integroituvat tiukasti valtavirran oliopohjaisiin kieliin. Meillä pitäisi myös olla teollisuustason hajautettuja infrastruktuureja grid- ja pilvialueilla, jotka käyttävät agenttiteknologioita. Erityisesti Platform-as-a-service (PaaS) -alalla tarvitaan uusia ohjelmointitapoja hajautettujen sovellusten kehittämiseen. Tässä moniagenttiset lähestymistavat voisivat auttaa täyttämään tämän puutteen. Tähän näkökohtaan liittyy se, että meiltä puuttuu edelleen kattavia virheenkorjaus- ja testauslähestymistapoja ja -työkaluja hajautetuille järjestelmille.
Costin Badica
Meidän on luotava yhteys perinteisempään CS-tutkimukseen ja -menetelmiin ja vältettävä keksimästä asioita tarpeettomasti uudestaan agenttien sateenvarjon alla – kuten AOSE:lla tai AOP:lla joskus yritetään tehdä.
Giovanni Rimassa
Agenttialustat pitäisi suunnitella uudelleen siten, että lisärajoitteena on se, että ne eivät saastuta tavanomaista IT-infrastruktuuria: ne ovat kiiltäviä kehittyneiden ominaisuuksiensa puolesta, mutta hyvin tylsiä mekanismiensa suhteen. Niiden ei pitäisi olla pysyviä, paitsi relaatiotietokantojen hallintajärjestelmien tai NoSQL-tietokantojen kanssa, eikä niiden pitäisi välittää viestejä, paitsi Java Message Service-, SOAP- tai RESTful-verkkopalveluiden kanssa. Kielten ja välineiden osalta nykyisen tutkimusaallon, jolla pyritään yhdistämään toimija- ja agenttiohjelmointikieliä, pitäisi voimistua, ja tavoitteena olisi oltava yhden tai useamman sellaisen täydellisen kehitysympäristön tuottaminen, joka todella soveltuu massakäyttöön. Henkilökohtainen toiveeni olisi saada toimija/agentti-kieli, jossa on moderni tyyppijärjestelmä, joka erottaa agentin, artefaktit/palvelut ja tiedon/tiedon toisistaan.