Agenttiarkkitehtuurit. Ohjelmistoarkkitehtuurit Mikko Vartiala

Samankaltaiset tiedostot
Agentit ja semanttinen web. Pekka Halonen

Osittavat arkkitehtuurityylit. Palveluihin perustuvat arkkitehtuurityylit. Erikoisarkkitehtuurityylit

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

Ohjelmistojen suunnittelu

6. Arkkitehtuurityylit

TIES530 TIES530. Moniprosessorijärjestelmät. Moniprosessorijärjestelmät. Miksi moniprosessorijärjestelmä?

Toimilohkojen turvallisuus tulevaisuudessa

HSMT J2EE & EJB & SOAP &...

HOJ J2EE & EJB & SOAP &...

12. Kehysarkkitehtuurit

Liite 1: KualiKSB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. KualiKSB. Sivu 1. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu

Järjestelmäarkkitehtuuri (TK081702) Web Services. Web Services

UML:n yleiskatsaus. UML:n osat:

9. Muunneltavuuden hallinta

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.

Ohjelmistoarkkitehtuurit

Toiminnot eli käyttäytyminen. Tieto eli rakenteelliset ominaisuudet

TURVAVÄYLÄSEMINAARI. Erilaiset kenttäväylät ja niiden kehitys Jukka Hiltunen

Onnistunut ohjelmistoprojekti

812341A Olio-ohjelmointi, I Johdanto

Tietojärjestelmien integroiminen hyödyntämällä palvelupohjaista arkkitehtuuria. CASE: Metropolia. Jaakko Rannila & Tuomas Orama 1

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Tietojärjestelmän osat

Ohjelmistoarkkitehtuurit. Syksy 2010

HOJ Haja-aiheita. Ville Leppänen. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10

The administrative process of a cluster. Santtu Rantanen Valvoja: Prof. Jorma Jormakka

KAVERI. Kaupan sijaintidynamikkaa tarkasteleva simulaatiomalli

6. Arkkitehtuurityylit

Ohjelmistoarkkitehtuurit

Ohjelmistoarkkitehtuurit Johannes Koskinen. Osittavat arkkitehtuurityylit

Web-palvelu voidaan ajatella jaettavaksi kahteen erilliseen kokonaisuuteen: itse palvelun toiminnallisuuden toteuttava osa ja osa, joka mahdollistaa k

Liikkuvien työkoneiden etäseuranta

Yhteisöllinen tapa työskennellä

Sisällys. Ratkaisumallien historia. Ratkaisumalli. Ratkaisumalli [2] Esimerkki: Composite [2] Esimerkki: Composite. Jaakko Vuolasto 25.1.

Avoimen ja jaetun tiedon hyödyntäminen. Juha Ala-Mursula BusinessOulu

Kokonaisturvallisuuden tilannekuva Suomessa Viria Forum 2018

KOLERASTA DIGITALISAATIOON Mikko Rusama, Helsingin Kaupungin Digitalisaatiojohtaja Avoin Data

Kiinteistöjen paloturvallisuuden ajankohtaispäivät 2016 Muuttuva ympäristö ja teknologian haasteet Palontorjunnan laitteistot Lauri Lehto,

14. Luento: Kohti hajautettuja sulautettuja järjestelmiä. Tommi Mikkonen,

OHJ-5201 Web-palveluiden toteutustekniikat. Kurssisisällöstä. Tarja Systä

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Johdatus rakenteisiin dokumentteihin

Portaaliteknologiat mahdollistavat ajattelutavan muutoksen

Ohjelmistoarkkitehtuurit. Syksy 2008

Ohjelmistoarkkitehtuurit. Kevät

Pertti Pennanen DOKUMENTTI 1 (5) EDUPOLI ICTPro

Oppimistavoitteet kurssilla Rinnakkaisohjelmointi

Kuva maailmasta Pakettiverkot (Luento 1)

JReleaser Yksikkötestaus ja JUnit. Mikko Mäkelä

Onnistunut ohjelmistoprojekti

8/20: Luokat, oliot ja APIt

Muutamia peruskäsitteitä

Viestinvälitysarkkitehtuurit

Teollisuuden uudistuvat liiketoimintamallit Teollinen Internet (Smart Grid) uudistusten mahdollistajana

Rinnakkaisuuden hyväksikäyttö peleissä. Paula Kemppi

Uudelleenkäytön jako kahteen

Ohjelmistoarkkitehtuurit kevät

Järjestelmäarkkitehtuuri (TK081702) Avoimet web-rajapinnat

Käytännön haasteita ja ratkaisuja integraation toteutuksessa. Jukka Jääheimo Teknologiajohtaja Solita Oy

Integrointi. Ohjelmistotekniikka kevät 2003

Viestinvälitysarkkitehtuurit Lähtökohta:

Yhteentoimivuusalusta: Miten saadaan ihmiset ja koneet ymmärtämään toisiaan paremmin?

in condition monitoring

Palveluperustaiset arkkitehtuurityylit

Helia Ohjelmointitaito Tuomas Kaipainen Mermit Business Applications Oy Mermit Business Applications

Arkkitehtuuritietoisku. eli mitä aina olet halunnut tietää arkkitehtuureista, muttet ole uskaltanut kysyä


Soveltuvuustutkimus Lifebelt-ohjelman ideologian käytettävyydestä olioorientoituneeseen

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2008

Grid-hankkeita ja tulevaisuuden näkymiä

Testaaminen ohjelmiston kehitysprosessin aikana

7. Tuoterunkoarkkitehtuurit

Solidity älysopimus ohjelmointi. Sopimus suuntautunut ohjelmointi

TIE Samuel Lahtinen. Lyhyt UML-opas. UML -pikaesittely

Tietovarastointiratkaisut massaräätälöinnin konfiguraattoreiden tukena. DI Mika Aho BI/DW Specialist

Sovellusarkkitehtuurit

5. Luento: Rinnakkaisuus ja reaaliaika. Tommi Mikkonen,

Sähköisen perhekeskuksen skenaariot

FiSMA 1.1 Toiminnallisen laajuuden mittausmenetelmä Ohje monikerrosarkkitehtuurin mittaamiseen

Teollisuuden hajautetun tiedonhallinnan yhdistys THTH ry. Digitalisaatio ja investointiprojekti Timo Juvonen, THTH ry / Juvos oy

OSI malli. S Tietoliikenneverkot S Luento 2: L1, L2 ja L3 toiminteet

Sähkönjakeluverkon hallinnan arkkitehtuuri. Sami Repo

Suunnitteluvaihe prosessissa

Kiinnostuspohjainen topologian hallinta järjestämättömissä vertaisverkoissa

Sisäilmaston mittaus hyödyntää langatonta anturiteknologiaa:

Prolog kielenä Periaatteet Yhteenveto. Prolog. Toni ja Laura Fadjukoff. 9. joulukuuta 2010

Kiila-viitearkkitehtuuri. Jani Harju,

Teknologiasta kuntoutuksen kiitorata

RECO irtaimiston- ja omaisuuden hallinta

Miten piensarjatuotantoon saadaan joustavuutta?

Yleisiä tietoja CAN-verkosta. Yleistä. Lisätietoja CAN-yhtyedestä on annettu seuraavissa asiakirjoissa:

Laaja-alainen, opiskelijalähtöinen ja projektiperusteinen opetussuunnitelma, case Monitori


Teknologia-arkkitehtuurit. Valinta ja mallinnus

10. Muunneltavuuden hallinta: variaatiopisteet

SOINTU ENNAKOIVUUTTA, TEHOKKUUTTA JA TURVALLISUUTTA KOTIHOITOON.

1.3 Katsaus ohjelmistotuotannon kehittymiseen

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2007

Järjestelmäarkkitehtuuri (TK081702) Järjestelmäarkkitehtuuri. Järjestelmäarkkitehtuuri

Transkriptio:

Agenttiarkkitehtuurit Ohjelmistoarkkitehtuurit Mikko Vartiala 3.11.2009

Rakenne 1. Johdanto, mitä ovat agentit? 2. Agenttien luokittelua ja erityispiirteitä 3. Mobiiliagentit 4. Moniagenttijärjestelmät 5. Yksittäisen agentin arkkitehtuureista 6. Esimerkkiarkkitehtuuri 7. Loppu.

1/5 Määritelmiä Agentti Autonominen ja päämäärähakuinen entiteetti. Moniagenttijärjestelmä (Multi-agent system, MAS) Monta keskenään kommunikoivaa agenttia Agentit saavuttavat päämääränsä toimimalla yhdessä Ei keskitettyä kontrollia

Esimerkkejä erityyppisistä 2/5 agenttijärjestelmistä NPC-pelaajat tietokonepeleissä Teollisuuden prosessivalvonta Teollisuuden materiaaliketjun hallinta Liikennevalvonta Kaupankäyntiagentit Palomiesten harjoittelusimulaattori Microsoft Office Assistant Looks like you re making a presentation. Would you like help?

3/5 Johdanto Agenteissa voidaan käyttää monen eri alan tietämystä: Tekoäly Hajautetut järjestelmät Rinnakkaiset järjestelmät Mobiilit järjestelmät Ihmisen ja tietokoneen välinen vuorovaikutus (HCI, Human-computer interaction)

4/5 Agenttien luokittelua Luokitus Reaktiivinen Autonominen Päämäärähakuinen Ajallisesti jatkuva (temporally continuous) Viestivä, kommunikatiivinen Oppiva Liikkuva, mobiili Joustava Kuvaus Reagoi ulkoisiin ärsykkeisiin Hallitsee omaa suoritustaan ja tekojaan Ei pelkästään reagoi muutoksiin ympäristössä, vaan suorittaa tehtävää On jatkuva prosessi Kommunikoi toisten agenttien ja mahdollisesti ihmisten kanssa Muuttaa omaa käytöstään edellisten kokemusten perusteella Pystyy liikkumaan suorituspaikasta toiseen Tekoja ei ole skriptattu

5 / 5 Käytännönläheinen määritelmä Agentit ovat tapa abstrahoida asioita Proseduuri Olio Agentti Helpottaako se järjestelmän kehitystä jos jokin kokonaisuus abstrahoidaan agentiksi? Onko jokin ohjelma agentti? Kutsutaan sitä agentiksi jos siitä on järjestelmän kehittämisen kannalta hyötyä!

1/4 Mobiiliagenteista tarkemmin Viestit/RPC-kutsut vs. agentin lähettäminen verkon yli Heikko mobiliteetti Vain koodi ja mahdolliset alustusparametrit siirtyvät Vahva mobiliteetti Agentti ja suorituksen tila siirtyy

2/4 Hidas tapa suorittaa päätelmä { GetData1( ); DoProcessing( ); GetData1( ) 1 GetData2( ); DoProcessing( ); GetData3( ); User GetData2( ) 2 DoProcessing( ); ShowResult( ); } GetData3( ) 3

3/4 Mobiilin agentin tapa Vähentää verkkoliikennettä ja parempi sietokyky verkkoliikenteen häiriöille Prosessointi voidaan tehdä siellä missä on siihen resursseja Joustavampi { } MoveTo( 1 ); GetData1( ); DoProcessing( ); MoveTo( 2 ); MoveTo( Home ); ShowResult( ); Home 1 2 3

Yksinkertaisen mobiilin 4/4 agenttijärjestelmän haasteita Turvallisuus Viallinen agentti jumittaa koko järjestelmän? Autentikointi, yksityisyys Resurssienjako Ilkeä agentti varaa kaiken prosessointitehon Agenttien yhteistyö Miten saavuttaa riittävä joustavuus ja ylläpidettävyys? Kommunikointi, järjestelmän jako eri agentteihin

1/3 Moniagenttijärjestelmät Määritelmä: Monta agenttia toimii samaan aikaan samassa ympäristössä tehden ainakin osittain yhteistyötä Miten ja miksi yhteistyötä tehdään? Agenttien koordinointi ja organisointi Agenttien kommunikointi

2/3 Yhteistyö Agenttien koordinointi ja organisointi, joitakin pointteja: Organisoinnin hierarkkisuus? Kaikki agentit tasa-arvoisia Agenteilla omat johtajat Organisoinnin dynaamisuus? Organisaatiossa on ennalta määrätyt suhteet agenttien välillä Organisaatio rakennetaan dynaamisesti mahdollisesti ennalta tuntemattomista agenteista

3/3 Moniagenttijärjestelmien haasteita Vaatii uudenlaisia toiminta- ja ajattelutapoja Työkalut Debuggaus Testaus Standardit

Yksittäisen agentin 1/8 arkkitehtuurityypeistä Reaktiivinen Tietoinen (deliberate) Hybridi

2/8 Reaktiivinen agentti Reagoi ulkoa tuleviin ärsykkeisiin Toimii vain nykyhetkessä Agentti Tapahtuma Toiminta Sensorit Säännöt Aktorit

3/8 Reaktiivinen agentti Edut Sopii alhaisen tason päätösten tekoon reaaliaikaisesti Toimintaperiaate yksinkertainen Monimutkainen käyttäytyminen saadaan aikaan monien eri agenttien yhdistelmällä Haitat Kaikki toimintatavat täytyy koodata käsin Vaikea uudelleenkäyttää Monimutkaisten ongelmien ratkaisut vaativat isoja ohjelmia

4/8 Tietoinen agentti Malli ympäristöstä, Päätöksiä ohjaa looginen päättelykyky Agentti Tapahtuma Toiminta Sensorit Malli ympäristöstä Päättelijä Aktorit Tavoitteet

5/8 Tietoinen agentti Edut Voi oppia menneistä kokemuksista ja suunnitella tulevaa tekemistään Voi sopeutua yllättäviin tilanteisiin Haitat Monimutkainen rakenne Päätöksenteko voi viedä aikaa Ympäristön mallinnus voi olla haastavaa

6/8 Hybridi agentti Tarkoituksena yhdistää reaktiivisen ja tietoisen agentin parhaita puolia Agentti Tietoinen kerros Tapahtuma Toiminta Sensori Aktori Reaktiivinen kerros

7/8 Hybridi agentti Kerrosten eri toimintatavat Hajautettu Kerrosten välillä ei kommunikaatiota, vaan toiminta tapahtuu rinnakkain ja itsenäisesti Hierarkkinen Tietoinen kerros hallitsee reaktiivista kerrosta ja voi muuttaa sen sääntöjä tarpeen vaatiessa Rinnakkainen Kerrokset toimivat rinnakkain, ovat samanarvoisia ja voivat muuttaa toistensa käyttäytymistä

8/8 Hybridi agentti Edut Pyrkii hyödyntämään kummankin agenttityypin parhaat puolet Haitat Kerrosten välisen yhteistyön toteuttaminen voi olla haastavaa

1/6 Esimerkki, agenttiarkkitehtuuri Käytetty ohj.tek. laitoksella muutamassa projektissa Perusidealtaan yksinkertainen, mutta riittävä näiden projektien tarpeisiin Toimii pääasiassa integraatioarkkitehtuurina Jakautuu kahteen osaan: agentit ja infrastruktuuri Agentit: Sisältävät bisneslogiikan Mobiileja Autonomisia Yksinkertaisia

2/6 Esimerkki, infrastruktuuri Jakautuu Areoihin, Locationeihin ja Transportereihin Locationit useimmiten adaptereita jo olemassaoleviin ohjelmistoihin Locationit toimivat myös rajapintoina paikallisiin tiedostojärjestelmiin ja tietokantoihin Transporterit mahdollistavat agenttien liikkumisen Arealta toiselle Agentit käyttävät infrastruktuurin avulla olemassa olevia ohjelmistoja omien tehtäviensä suorittamiseen Location a.k.a. Stationary agent Area a.k.a. Agency network Transporter Area B Transporter Area A Location : ToolA Filesystem Location : ToolB Database

3/6 Esimerkki, aktiviteetti-agentti USER A2 : Area2 I want to execute an activity GUI1 : GUILocation 1. <<create>> Agent1 : ExecuteActivity Agent 3. ExecuteActivity 4. etc. A1 : Area1 L2 : Location2 AE1 : ActivityEngine Location 2. <<travel>> T2 : Transporter1 << network >> T1 : Transporter1

4/6 Esimerkki, säikeet Agentit pyörivät omissa säikeissään Agenteilla on kontrolli oman säikeensä lopettamisesta <<process >> Area <<thread>> Receiver Transporter <<thread>> Sender <<creates>> <<thread>> Agent1 <<thread>> Agent2 <<thread>> Agent3 <<creates>> <<creates>> <<thread>> GUILocation

creates Agents Infrastructure inherits inherits * * Area * * uses * 0..1 Agent 1 inherits Method 1 * * Location * creates, notifies Transporter * Meta Architecture 5/6 Agent2,... Agent1 Location1 +Method1() Area1 A location or agent Create An Area Agent1 "Give me a Location of type Location1" Location1 Location2 +Method2() Area2 System Architecture Method1() Transporter1 A2 : Area1 L3 : Location2 L5 : Location1 1. <<create>> 2. <<travel>> T2 : Transporter1 A2 : Agent1 3. Method1( ) A3 : Area2 L4 : Location2 1. <<create>> A1 : Agent1 T3 : Transporter1 << network >> << network >> 3. Method1( ) 2. <<travel>> A1 : Area1 L2 : Location2 L1 : Location1 T1 : Transporter1 Runtime Architecture << network >>

Esimerkki, arkkitehtuuriratkaisun 6/6 analyysiä: viestinvälitys vs. agentti Viestien tapauksessa toiminnallisuus hajautuu viesteihin ja useaan komponenttiin Viestijärjestelmässä piilossa olevia riippuvuuksia pitää tietää järjestelmästä muutakin kuin vain viestit (viestin voi joissain tilanteissa nähdä epäsuorana funktiokutsuna) Yksi toimintokokonaisuus on yhdellä agentilla helpompi ylläpitää tätä toimintoa Suora riippuvuus komponentin rajapintaan hankalampi muuttaa komponenttien rajapintoja ( mitkäs kaikki agentit tätä käyttivätkään ) Epäsuora riippuvuus: mahdollinen oletus toisen komponentin toiminnasta ja olemassaolosta, esim. AloitaProjekti à jonkun pitää käsitellä, jotta jotain tapahtuisi A Agent -Rakenne -Sisältö vrt. SOA, BPML, etc. B B

Lopuksi Mitä kaikkea muuta? Agent Communication Languages (ACL) Agent Oriented Languages (AOL) Teknologiat Työkalut Olemassa olevat frameworkit

Kiitos!