Gajos metodas
Straipsnis iš Vikipedijos, laisvosios enciklopedijos.
Gaja – vienas iš ankščiausių agentinių metodų. Šiuo metu yra sukurta antroji jos versija. Gajos metode naudojama organizacijomis grindžiama analogija. Ji teikia metodą, kuris yra suprantamas realizuotinas kūrėjui ir ne technikos srities ekspertui.
Gajos agentinis metodas gali būti panaudota analizei ir projektavimui. Gajos metodas yra bendras, tuo kad jį galima taikyti plačiame daugiaagentinių sistemų diapazone, ir kartu visapusiškas, kadangi gali apimti sistemos makro ir mikro lygmenų aspektus. Gaja sukurta stebint daugiaagentines organizacijų sistemas, kurių skaičiavimuose naudojami įvairūs sąveikaujantys vaidmenys. Gajos galima pavaizduoti naudojant agentais pagrįstą verslo proceso sistemos valdymą.
Per porą paskutinių dešimtmečių programinės įrangos progresas buvo pasiektas vystant nuolat galingesnes ir natūralias aukšto lygio abstrakcijas, kurios naudojamos modeliuoti ir kurti sudėtingas sistemas. Tokių abstrakcijų pavyzdžiai: procedūrinė abstrakcija, duomenų tipų abstrakcija, objektai ir komponentai. Tikima, kad agentai gali sukelti panašią pažangą abstrakcijose – jas gali naudojami programinės įrangos kūrėjai natūraliau suprasti modelį ir kurti svarbias sudėtingų išskirstytų sistemų klases[1].
Gaja galima naudoti kaip agentais grindžiamą programinės įrangos inžinerijos paradigmą. Kadangi ji pašalina kituose metoduose pasitaikančius minusus:
- Egzistuojančius fundamentalius neatitikimas tarp konceptų, kuriuos naudoja kūrėjai naudodami objektus ir kūrėjų, kurie naudoja agentus, požiūrio.
- Nesugebėjimą tinkamai išnaudoti agentų lankstumo;
- Nesugebėjimą tinkamai išnaudoti autonominės problemų sprendimų elgsenos;
- Nesugebėjimą tinkamai išnaudoti išvystyto agentų sąveikavimo;
- Problemas susijusias su sistemų organizacinių struktūrų sudėtingumu.
Šis metodas sukurtas minėtų agentais pagrįstų sistemų analizei ir projektavimui.
Gajos metodika tinkama kurti tokia sistemas kaip, pavyzdžiui, ADEPT ar ARCHON. Tokių sistemų savybės:
- Jos yra didelio mąsto realaus pasaulio taikomosios programos, kurių pagrindinės charakteristikos: agentai yra suskaidytos skaičiavimo sistemos, kurių kiekviena naudoja skaičiavimo išteklius (galima laikyti, kad kiekviena naudoja atskirus Operacinės sistemos išteklius - procesus).
- Laikoma, kad tikslas yra išvystyti sistemą, kuri maksimizuoja kai kuriuos globalius kokybės matavimus, tačiau gali būti pusiau optimali žvelgiant iš sistemų komponentų pozicijos. Gajos metodika nėra skirta tokioms sistemoms, kurios pripažįsta tikro konflikto galimybę.
- Agentai yra heterogeniški, skirtingi agentai gali būti įgyvendinti naudojant skirtingas programavimo kalbas, architektūrą ir technikas. Galima nenagrinėti galutinės įgyvendinimui naudojamas platformas.
- Sistemos organizacijos struktūra yra statiška – einant laikui ryšiai tarp agentų nekinta.
- Agentų savybės ir paslaugos yra statiškos – einant laikui jos nekinta.
- Visa sistemą sudaro palyginti mažas skaičius skirtingų agentų tipų (mažiau nei 100).
Gajos metodas apima tiek makro (socialinį) lygmens, tiek ir mikro (agentinį) lygmens projektavimo aspektus. Gaja yra pažangesnė nei ankstesni metodai tuo, kad laikosi neutralumo ir gerbia dalykinę sritį, tiek ir agentinę architektūrą.
Turinys |
[taisyti] Koncepcinis karkasas
Gaja leidžia analitikui sistematiškai apimti viską nuo reikalavimų iki projektavimo, kuris yra pakankamai detalus, kad galėtų būti įgyvendintas tiesiogiai. Laikomasi to, kad reikalavimų apėmimo fazė nepriklausoma nuo paradigmos naudojamos analizėje ir projektavime. Taikant Gaja, analitikas pereina nuo abstrakcijos prie didėjančių konkrečių konceptų. Kiekvienas sėkmingas žingsnis labiau veikia įgyvendinimą ir mažina potencialiai galimų sistemų variantų aibę, kurią turi tenkinti įgyvendinti reikalavimai. Analizė ir projektavimas gali būti laikomi kūrimo procesais, kuriais yra konstruojamos sistemos bei didėjančiai detalizuojami modeliai. Pagrindiniai modeliai naudojami
Gaja teikia agentams specifinių konceptų rinkinį, kurio dėka programinės įrangos inžinierius gali suprasti ir modeliuoti sudėtingą sistemą. Gaja skatina kūrėją mąstyti apie agentais pagrįstą sistemas kaip apie organizacinį projektavimo procesą. Pagrindiniai konceptai gali būti suskirstyti į dvi kategorijas: abstrakcijos ir konkretizavimai. Abstrakcijos esybės yra tokios, kurios naudojamos atliekant sistemos konceptualizacijos analizę, tačiau tai nebūtinai tiesiogiai susijusi su vykdoma sistemos realizacija. Konkrečios esybės, priešingai, yra naudojamos projektavimo metu ir tradiciškai tiesiogiai susijusios, kadangi kopijuoja sistemos elgseną.
- Abstraktūs konceptai
- Vaidmenys
- Leidimai
- Atsakomybės
- Protokolai
- Veiklos
- Gyvybingumo savybės (Liveness properties)
- Saugumo savybės
- Konkretūs konceptai
- Agento tipai
- Paslaugos
- Pažinimai
[taisyti] Analizė
Analizės etapo uždavinys suprasti sistemą ir jos struktūrą (nenurodant įgyvendinimo detalių). Šiuo atveju supratimas yra gaunamas išanalizavus sistemos organizaciją. Organizacija mes galime laikyti vaidmenų kolekcija, kurioje vaidmenys susiję vieni su kitais, tai atsispindi ir atliekant sistematiką, sudarant vaidmenų sąveikavimų su kitais šablonus (tai pateikta sekančioje iliustracijoje).
Pats abstrakčiausias konceptas hierarchijoje yra „sistema“. Ir nors terminas naudojamas pagal savo reikšmę, kai kalbame apie agentais pagrįstą sistemą, terminas atitinka „bendruomenė“ ir „organizacija“. Tai reiškia, kad mąstoma apie agentais pagrįstą sistemą kaip apie dirbtinę bendruomenę ar organizaciją. Sistemos kaip bendruomenės idėja yra naudinga kai mąstoma apie sekantį lygmenį koncepcinėje hierarchijoje – vaidmenis. Gali atrodyti keista, kad kompiuterinė sistema gali būti apibrėžta vaidmenų rinkiniu, tačiau idėja yra pakankamai natūrali, kai pritaikomas organizacinis pasaulio požiūris. Galime įsivaizduoti žmonių organizaciją kaip tipišką bendrovę. Bendrovė turi vaidmenis tokius kaip, pvz., „generalinis direktorius“, „pardavimų vadybininkas“ ir t.t. Pažymėtina, kad konkrečioje bendrovės realizacijoje, minėti vaidmenys turės savo realius individualius egzempliorius: bus individas - egzempliorius, kuris vykdys „generalinio direktoriaus“ vaidmenį ir t.t. Tačiau egzempliorių priskyrimas vaidmenims nėra statiškas. Gyvuojant bendrovei, daug individų gali vykdyti „generalinio direktoriaus“ vaidmenį. Taip pat nėra privalomas vienas su vienu ryšys tarp vaidmenis ir individų (vaidmenų egzempliorių). Neretai pasitaiko, kad mažesnėse įmonėse ar neformaliai apibrėžtose organizacijose. Pvz., vienas individas gali vykdyti „administratoriaus“ ir „buhalterio“ vaidmenis. Ir atvirkščiai gali būti daug individų, kurie vykdys „pardavimų vadybininko“ vaidmenį. Vaidmenis apibrėžia keturi atributai (savybės): atsakomybės, leidimai, veiklos ir protokolai. Atsakomybės nustato funkcionalumą ir galbūt yra svarbiausias atributas susijęs su vaidmeniu. Atsakomybės susijusios su vaidmeniu pavyzdys: bendrovės generalinis direktorius kartą per metus turi sukviesti akcininkų susirinkimą. Atsakomybės yra suskirstytos į du tipus: gyvybingumo savybės ir saugumo savybės. Gyvybingumo savybės intuityviai nusako, kad „kažkas gero atsitinka“. Jos aprašo tas būsenų veiklas, kuriose agentas turi veikti, pateiktas konkrečias aplinkos sąlygas. O saugumo savybės priešingai yra invariantinės. Saugumo savybės intuityviai teigia, kad „nieko blogo neatsitinka“ (kad, tenkinama veiklų būsena yra palaikoma vykdant visas būsenas). Pvz., „užtikrinti, kad reaktoriaus temperatūra visada turi būti tarp 0-100 laipsnių pagal Celsijų“. Tam, kad būtų realizuotos atsakomybės, vaidmuo turi „leidimų“ rinkinį. „Leidimai“ yra tam tikros „teisės“ susijusios su vaidmeniu. Vaidmens leidimai įgalina identifikuoti išteklius, kurie yra prieinami vaidmeniui, tam, kad būtų realizuotos atsakomybės. Tokiuose sistemose, kuriuos mes tradiciškai modeliuojame, leidimai yra „informaciniai ištekliai“. Pavyzdžiui, vaidmuo gali būti susietas su savybe skaityti tam tikrą informacijos objektą arba keisti kitą informacijos dalį. Vaidmuo gali turėti savybę „generuoti“ informaciją. Vaidmens veiklos yra skaičiavimai susieti su vaidmeniu, kurie gali vykdyti agentas nesąveikaudamas su kitais agentais. Todėl veiklos yra tam tikra prasme „asmeniniai“ veiksmai. Galiausiai, vaidmuo taip pat identifikuojamas (naudojasi) su tam tikru kiekiu protokolų, kurie apibrėžia būdą, kuriuo vaidmuo sąveikauja su kitais vaidmenimis. Pavyzdžiui, vaidmuo „pardavėjas“ gali turėti protokolus „Danų aukcionas“ ir „Anglų aukcionas“, kurie susiję su vaidmeniu. Iš kitos pusės žiūrint, „Užsakymo sudarymo“ protokolas yra susijęs su vaidmenimis „vadybininkas“ ir „užsakovas“. Todėl Gajos modelis sudarytas iš dviejų modelių: vaidmenų modelio ir sąveikų modelio.
[taisyti] Vaidmenų modelis
Vaidmenų modelis identifikuoja pagrindinius sistemos vaidmenis. Čia vaidmuo gali būti apibūdintas kaip abstraktus esybės tikėtinų funkcijų aprašymas. Kitaip tariant vaidmuo yra daugiau ar mažiau identiškas „biuro“ sąvokai ta prasme, kad „premjeras“ir kitos pareigybės yra biurai. Tokie vaidmenys (arba biurai) yra apibūdinamos dviejų tipų atributais:
- Leidimai/teisės – susietos su vaidmeniu.
Vaidmuo turi būti susietas su tam tikrai leidimais, su tipu ir išteklių kiekiu, kuriuos galima išnaudoti kai atliekamas vaidmuo. Šiuo atveju, minėti aspektai yra apimti atribute vadinamame vaidmens leidimais.
- Vaidmens atsakomybės.
Vaidmuo yra sukurtas atlikti kažką. Tai yra vaidmuo turi tam tikrą funkcionalumą. Funkcionalumas išreikštas atributu žinomu kaip vaidmens atsakomybės.
[taisyti] Leidimai
Leidimai susieti su vaidmeniu turi du aspektus. Jie identifikuoja išteklius, kurie gali būti teisėtai panaudoti atlikti vaidmenį, tai reikia, kad jie nusako, kas gali būti leidžiama atlikti vaidmenį.
Jie apibrėžia išteklių kiekį, kuriais gali pasinaudoti vaidmens atlikėjas, tai yra kas negali būti leista atliekant vaidmenį. Leidimai gali būti susiję su bet kokios rūšies ištekliais. Pavyzdžiui, žmonių organizacijoje, vaidmuo gali būti tam tikras biudžeto panaudojamas asmeniui. Tačiau Gajos metodikoje ištekliai yra susieti tik su informacija arba žiniomis, kurias turi agentas. Tai yra, tam, kad atliktų vaidmenį, agentas tradiciškai turi turėti prieigą prie tam tikros informacijos. Kai kurie vaidmenys gali kurti informaciją, kitiems gali prireikti prieigos prie tam tikros jos dalies, tačiau ją nekeisti, kai tuo tarpu dar kitiems gali - ją keisti.
[taisyti] Metodikos praktinis pavyzdys
Gajos metodas panaudoja formalią notaciją išreikti leidimus, kurie pagrįsti FUSION metodo notacijos veikimo schema. Galime pateikti Gajos metodikos pavyzdį, Kavos papildytojo vaidmenį (vaidmens tikslas yra užtikrinti, kad kavos indas yra pilnas kavos, kuris skirtas darbuotojų grupei). Toliau pateiksime paprastą pavyzdį susijusiu Kavos papildytojo leidimais: Kavos_statusas // Pilna arba Tuščia Kavos_atsargos // Kavos atsargų kiekis
Ši specifikacija apibrėžia du Kavos_papildytojas leidimus: jis sako, kad agentas atliekant vaidmenį turi leidimą prieiti prie Kavos_statusas reikšmės ir turi leidimą tiek skaityti ir keisti Kavos_atsargos reikšmę. Egzistuoja ir trečias leidimų tipas, generuojama, kuri nurodo, kad vaidmuo gamina resursą (kas nepateikta pavyzdyje). Galima atkreipti dėmesį, kad šie leidimai yra susiję su žiniomis, kurios turi agentas. Kavos_statusas yra realaus pasaulio reikšmė, kurią įvertina agentas. Kai kurie vaidmenys yra parametrizuojami tam tikromis reikšmėmis. Pavyzdžiui, mes galime apibendrinti Kavos papildytojo vaidmenį parametrizuodami jį su kavos aparatu, kuri turi būti papildytas. Tai specifikuojama nurodant leidimų apibrėžimus raktažodžiais: Kavos_statusas // Pilna ar tuščia Kavos_atsargos // Kavos atsargų lygis
| Operatorius | Interpretavimas | |
|---|---|---|
| x y | Po x seka y | |
| y | Įvyksta x arba y | |
| x* | x įvyksta 0 arba daugiau kartų | |
| x+ | x įvyksta 1 arba daugiau kartų | |
| x ∞ | x įvyksta neribota kiekį kartų | |
| x| | x gali įvykti arba ne | |
| x | y | x ir y kaitaliojasi |
| celė | celė |
[taisyti] Atsakomybės
Vaidmens funkcionalumą apibrėžia atsakomybės. Šios atsakomybės gali būti padalintos į dvi kategorijas gyvybingumo ir saugumo savybės. Gyvybingumo savybės yra tos, kurios intuityviai, nusako tai, kad „kažkas gero atsitiks“. Šios savybės yra taip vadinamos, kadangi jos linkusios nusakyti, kad „kažkas bus atlikta“, todėl agentas vykdantis vaidmenį yra dar gyvybingas. Gyvybingumo savybės pasižymi tam tikra struktūra. Pavyzdžiui, garantuotos atsakomybės įvykdymo tikslas turi formą „po prašymo seka atsakymas“. Begalinių kartojimų įvykdymo tikslas turi formą „x įvyks be galo dažnai“.
Tam, kad iliustruotume įvairius konceptus susijusius su vaidmenimis, mes toliau panaudosime Kavos_papildytojas vaidmenį. Gyvybingumo atsakomybės gali būti:
- Kai kavos nėra, reikia papildyti;
- Kai šviežia kava yra padaryta, reikia pranešti darbuotojams. (kaip papildoma atsakomybė, tačiau praktiniame pavyzdyje nenaudojama)
Gajoje gyvybingumo savybės yra specifikuojamos naudojant gyvybingumo išraišką, kuri apibrėžia vaidmens gyvavimo ciklą. Gyvybingumo išraiška yra pan. Į FUSION metodo, tačiau taip pat dar turi operatorių „ω“ skirta „begaliniam pakartojimui“.
Gyvybingumo išraiškos apibrėžia potencialias vykdymo trajektorijas naudojant įvairias veiklas ir sąveikas (pvz., per protokolus) susijusias su vaidmeniu. Bendra gyvybingumo išraiška:
Vaidmens_pavadinimas = Išraiška
„Vaidmens_pavadinimas“ yra to vaidmens pavadinimas, kurio gyvybingumo savybės yra apibrėžiamos. „Išraiška“ yra gyvybingumo išraiška, apibrėžianti „Vaidmens_pavadinimas“ savybes. Atomiški gyvybingumo išraiškos komponentai yra veiklos arba protokolai. Veikla yra kažkas panašaus į metodą objektais grindžiamoje terminologijoje arba procedūroje programavimo kalboje. Tai yra vienas veiklos vienetas, kurį agentas gali atlikti, neįtraukdamos sąveikos su kitais agentais. Kita vertus, protokolai yra veiklos, kurios reikalauja sąveikos su kitais agentais. Tam, kad būtų galima lengviau atskirti tarpusavyje protokolus ir veiklas, juos galime dažniausiai rašoma skirtingai: protokolus be pabraukimo, o veiklas pabraukus (šiuo atveju vaizduojama pakreipus).
Pvz., Kavos_papildytojas (Papildyti. Patikrinti_atsargas, Laukti_tuščio)ω. Ši išraiškia nusako, kad Kavos_papildytojas priklauso protokolui Papildyti, po kurio eina veikla Patikrinti_atsargas ir protokolas Laukti_tuščio. Sekantis šių protokolų ir veiklų vykdymas yra juos kartoji, be galo dažnai. Pabrėžtina, kad protokolus laikysime paprasčiausiomis sąveikos žymėmis ir nekreipdami dėmesio kokie jų tikrieji apibrėžiami. Sudėtingos gyvybingumo išraiškos gali būti lengviau skaitomos instruktuojant jas. Tai iliustruojantis pvz.: Kavos_papildytojas=(Visi)ω Visi = Papildyti. Patikrinti_atsargas. Laukti_tuščio
Tokių apibrėžimų semantika yra tik teksto pakeitimas. Daugumoje atveju, neefektyvu paprasčiausiai nurodyti vaidmens gyvybingumo atsakomybes. Todėl, kad agentas vykdantis vaidmenį bus reikalingas vykdymo metu palaikyti tam tikrus invariantus. Pavyzdžiui, galime reikalauti, kad konkretus agentas dalyvaujantis elektroninėje komercijoje niekada neišleistų daugiau pinigų nei jam priskirta. Šie invariantai yra vadinami saugumo sąlygomis, kadangi jie dažniausiai susiję su nepageidaujamo įvykio prevencija. Saugumo reikalavimus Gajos metode nurodo predikatų sąrašas. Šie predikatai tradiciškai išreiškiami per tam tikrą kintamųjų sąrašą, kurie įvardinti vaidmens leidimų atributu. Grįžkime prie Kavos_papildytojas vaidmens, agentas vykdantis šį vaidmenį bus reikalingas užtikrinti, kad kavos atsargos niekados nebūtų tuščios. Mes tai galime nurodyti tokia saugumo išraiška:
Kavos atsargos > 0
Pagal susitarimą, mes saugumo išraiškas paprasčiausiai išvardinsime sąraše. Tai daroma besąlygiška prielaida, kad šios atsakomybės taikomos visoms sistemos vykdymo būsenoms. Jei vaidmuo yra be galo ilgas (kaip Kavos_papildytojas atveju), tada invariantai turi būti visada lygūs teisybei.
Tada galime tiksliai apibrėžti Gajos vaidmenų modelį. Vaidmenų modelis sudarytas iš vaidmenų schemų rinkinio, viena schema kiekvienam sistemoje veikiančiam vaidmeniui. Vaidmenų schema kartu apima įvairius atributus pateiktus vaidmenų schemos pavyzdyje (Kavos_papildytojas). Ši schema nusako, kad Kavos_papildytojas turi leidimą skaityti Kavos_aparatas parametrą kavos aparato statusą (kai Kavos_aparatas vaidmens tikslas būti pilnam, o Kavos_statusas nusako ar aparatas pilnas ar tuščias). Dar daugiau, vaidmuo turi leidimą keisti Kavos_atsargos reikšmę.
Vaidmenų šablono struktūra
- Vaidmens schema „vaidmens pavadinimas“
- Aprašymas - trumpas vaidmens aprašymas
- Protokolai ir veiklos - protokolai ir veiklos, kurias vaidmuo atlieka
- Leidimai - „teisės“ susietos su vaidmeniu
- Atsakomybės
- Gyvybingumas
- gyvybingumo atsakomybės
- Saugumas
- saugumo atsakomybės
- Gyvybingumas
Konkretus pavyzdys:
Vaidmens schema: Kavos_papildytojas
- Aprašymas:
- Šis vaidmuo užtikrina, kad kavos aparatas būtų pilnas
- Protokolai ir veiklos:
- Papildyti, Patikrinti_atsargas, Laukti_tuščio
- Leidimai
- Skaityti Kavos_statusas // Pilna arba tuščia
- Keisti Kavos_atsargos // Kavos kiekis
- Atsakomybės
- Gyvybingumas
- Kavos_papildytojas = (Papildyti. Patikrinti_atsargas. Laukti_tuščio) ω
- Saugumas
- Kavos_atsargos > 0
- Gyvybingumas
[taisyti] Sąveikų modelis
Daugiaagentinėje organizacijoje tarp įvairių vaidmenų būtinai egzistuoja priklausomybės ir ryšiai. Šios sąveikos ypač svarbios tam kaip sistema veikia. Aišku, šios sąveikos turi būti suprastos (išgautos) ir atvaizduotos analizės fazėje. Gajoje ryšiai tarp vaidmenų atvaizduojami sąveikų modelyje. Modelį sudaro protokolų apibrėžimų rinkinys, iš kurių kiekvienas skirtas vienai vaidmenų sąveikai. Čia protokolai būti interpretuotas kaip tam tikras standartinis sąveikos šablonas. Tai yra, sąveikos šablonas, kuris formaliai apibrėžtas ir pateiktas abstrakčiai nuo konkrečių vykdymo žingsnių. Tokiu būdu nagrinėjant sąveikas visas dėmesys kreipiamas į sąveikos prigimtį ir tikslą, ir neakcentuojama tiksli pranešimų apsikeitimo tvarka.
Protokolo pavyzdys: Kavos papildymas
Šis būdas reiškia, kad vienas protokolo apibrėžimas tradiciškai apima veikiančios sistemos tam tikrą kiekį atsirandančių pranešimo apsikeitimų. Pavyzdžiui, jei tai būtų Aukciono protokolas, jis apimtų daug vaidmenų (pardavėjus ir pirkėjus) ir daugybę potencialių apsikeitimo šablonų (oficialus pranešimai, statymai ir pan.). Tačiau analitinėje fazėje toks tikslumas nereikalingas, kadangi būtų pirmalaikis. Protokolo apibrėžimas apima tokius atributus:
- Tikslas: sąveikos prigimties aprašymas (pvz., „informacijos prašymas“, „veiksmų tvarkaraštis“, „paskirta užduotis“);
- Iniciatorius: vaidmuo (-ys) atsakingi už sąveikos pradžią;
- Priėmėjas/atsakovas: vaidmuo su kuriuo iniciatorius sąveikauja;
- Įeiga: informacija, kurią naudoja vaidmuo iniciatorius, kai veikia per protokolą;
- Išeiga: informacija, kurią teikia protokolas priėmėjas ar jam teikia sąveikos metu;
- Apdorojimas: bet kokio protokolo apdorojimo, kurį atlieka protokolas iniciatorius sąveikos metu, tekstinis aprašymas.
Tai galima iliustruoti Kavos papildymas protokolu, kuri yra dalis Kavos_papildytojo vaidmens. Tai nusako, kad protokolas Papildyti yra inicializuojamas Kavo_papildytojas vaidmens ir apima vaidmenį Kavos_papildytojas. Protokolas įtraukia Kavos_papildytojas įdedamas kavos į aparatą pavadintą Kavos_aparatas bei gaunama taip, kad Kavos_papildytojas informuojamas apie Kavos_atsargos.
[taisyti] Analizės procesas
Gajos analizės fazė gali būti apibendrinta tokiais žingsniais:
- Nustatyti vaidmenis veikiančius sistemoje. Vaidmenys sistemoje tradiciškai apibūdinami taip:
- Individai (objektai), veikiantis organizacijoje arba nepriklausomai;
- Organizacijos departamentai arba pačios organizacijos.
- Išeiga: Prototipinis vaidmenų modelis – svarbiausių vaidmenų sąrašas, kurie veikia sistemoje, kiekvienas su savo informacija ir bendru aprašymu.
- Kiekvienam vaidmeniui identifikuojami ir dokumentuojami susiję protokolai. Protokolai yra sąveikos šablonai, kurie naudojami sistemoje tarp įvairių vaidmenų. Pvz., protokolas gali atitikti agentą, vykdantį Pirkėjo vaidmenį, kuris stato aukcione sąveikaudamas su kitu agentu vykdančiu Pardavėjo vaidmenį.
- Išeiga: Sąveikos modelis, kuris apima pasikartojančius vaidmenų sąveikavimo šablonus.
- Naudodami protokolo modelį kaip pagrindą, bendrai aprašome vaidmenų modelį.
Išeiga: Pilnas bendrai aprašytas vaidmenų modelis, kuris dokumentuoja pagrindinius vaidmenis veikiančius sistemoje, jų leidimus ir atsakomybes, kartu su protokolais ir veiklomis, kuriuos naudoja.
- Kartojame 1-3 žingsnius.
[taisyti] Projektavimas
Tradicinis projektavimo procesas yra transformuoti abstrakčius modelius sudarytus analizės fazės metu į žemo lygio abstrakcijos modelius, kurie vėliau gali būti lengvai įgyvendinami. Tačiau tai nėra į agentus orientuoto projektavimo atvejis. Gajos metodu transformuojami analizės modeliai į tinkamus žemo lygio abstrakcijas naudojant tradicines projektavimo technikas (tame tarpe į objektus orientuotas technikas), kurios gali būti taikomos įgyvendinti agentus. Gajos metodui aktualu kaip bendruomenės agentai bendradarbiauja realizuodami sisteminio lygmens tikslus ir kas reikalinga kiekvienam individualiam agentui, kad tai būtų atliktų. Iš tikrųjų tai kaip agentai realizuoja savo paslaugas yra jau už Gajos srities ribų ir priklausys nuo konkrečios dalykinės srities. Gaja projektavimo procesas apima trijų modelių generavimą. Agentų modelis identifikuoja agentų tipus, kurie sudarys sistemą ir agentų egzempliorius, kurie bus kildinami iš tų tipų bei naudojami. Paslaugų modelis identifikuoja pagrindines paslaugas, kurios reikalingos realizuoti agentų vaidmenys. Galiausiai, pažinimo modelis dokumentuoja komunikacija tarp skirtingų agentų.
[taisyti] Agentų modelis
Gajos agentų modelio paskirtis yra dokumentuoti įvairius agentų tipus, kurie bus naudojami kuriant sistemą, ir agentų egzempliorius, kurie realizuos šiuos agentų tipus veikimo metu. Agentų tipas geriausiai gali būti suprantamas kaip agentų vaidmenų rinkinys. Gali būti vienas su vienu ry6ys tarp vaidmenų ir agentų tipų kaip pavaizduota žemiau pateiktoje lentelėje.
Egzempliorių kiekių žymėjimai:
| Žymėjimas | Reikšmė |
|---|---|
| m | Bus lygiai m egzempliorių. |
| m … n | Bus tarp m ir n egzempliorių. |
| * | Bus tarp 0 ir daugiau egzempliorių. |
| + | Bus 1 ar daugiau egzempliorių. |
Tačiau, nebūtinai tai bus visada. Projektuotojas gali pasirinkti supakuoti tam tikrą artimai susijusių vaidmenų kiekį į vieną agento tipą kaip projektuotojui yra patogiau. Šioje fazėje svarbiausia yra efektyvumas: projektuotojas beveik visada norės optimizuoti projektą, ir vienas iš būdų tai atlikti yra agreguoti tam tikrą agentų vaidmenų kiekį į vieną tipą. Tokio sprendimo pavyzdys - būtinybė patenkinti reikalavimus procesoriaus galiai ar atminties kiekiui, kurie gali būti tokie dideli, kad efektyviau tam tikrą vaidmenų kiekį sujungti viename agento tipe nei leisti jiems kiekvienam vykdyti savo atskirą vaidmenį.
Svarbu suprasti dviejų dalykų ryšį, kaip lengvai agento tipo funkcionalumas gali būti suprastas ir įvertinti efektyvumą, kuris pasiekiamas projektuojant agentų tipus. Agentų modelis yra apibrėžiamas naudojant agentų tipų medį, kuriame lapai-mazgai atitinka vaidmenis (pagal tai kaip apibrėžtas vaidmenų modelyje) ir kiti agentai atitinka agentų tipus. Jei agento tipas t1 turi vaikus t2 ir t3, tai reiškia, kad t1 yra sudarytas iš vaidmenų, kurie sudaro t2 ir t3.
Mes dokumentuojame agentų egzempliorius, kurie atsiranda sistemoje agentų modelyje anotuojant agentų tipus. Anotacija n reiškia, kad sistemos veikimo metu bus lygiai n agentų. Anotacija m..n reiškia, kad sistemos veikimo metu bus tarp m ir n agentų. Anotacija * reiškia, kad veikimo metu bus 0 arba daugiau agentų, ir + bus 1 arba daugiau egzempliorių . Būtina pažymėti, kad paveldimumas nedaro įtakos Gajos agentų modeliams. Mūsų požiūris yra toks, kad agentai yra stambūs skaičiuojamos sistemos komponentai, kurių agentų sistema tradiciškai turi palyginus nedidelį kiekį, tiek vaidmenų, tiek jų agentų tipų. Dažniausiai jie susieti vienas su viena ryšiu. Dėl šios priežasties, paveldėjimas nėra naudingas projektuojant agentų tipus (tačiau, kai prieinama prie įgyvendinimo, paveldėjimas yra ypač naudingas, tai atliekant objektiškai orientuotai). Paslaugų modelis
Jau pats pavadinimas nusako, kad bus šis modelis yra susijęs su agentų vaidmenų teikiamomis paslaugas. Šiame modelyje taip pat nurodomos pagrindinės paslaugų savybės. Paslauga – agento funkcija. Objektiškai orientuotu požiūriu, paslauga atitinka metodą, tačiau paslaugos nėra lygiai taip pat prieinamos kitiems agentais kaip tai yra objektiniuose metoduose, kuriai iškviečiami kiti objektai. Paslauga yra paprastas vienas stambus veiklos blokas, kuriuo užsiima agentas. Pažymėtina, kad analizės fazėje kiekviena veikla identifikuojama su tam tikra paslauga, tačiau ne kiekviena paslauga atitinka veiklą. Kiekvieną paslaugą gali atlikti agentas, tačiau svarbu dokumentuoti jos savybes. Reikia dokumentuoti kiekvienos paslaugos įeigą, išeigą, prieš sąlygas ir po sąlygas. Įeiga ir išeiga bus gaunami iš protokolų modelių. Prieš ir po sąlygos atitinka paslaugos ribojimus, kurie kildinami iš vaidmens saugumo savybių. Pažymėtina, kad kiekvienas vaidmuo yra susiejamas bent su viena paslauga. Paslaugos, kurias atlieka agentas, yra išvedamos iš vaidmens protokolų, veiklų, atsakomybių ir gyvybingumo savybių sąrašo. Pvz., grįžkime prie kavos papildymo pavyzdžio, egzistuoja 3 veiklos ir protokolai susiję su šiuo vaidmeniu: Papildyti, Patikrinti_atsargas, Laukti_tuščio. Egzistuos bent viena paslauga susijusi su kiekvienu protokolu. Pvz., Patikrinti_atsargas atveju, paslauga gali turėti tokį patį vardą, ji paims įeiga atsargų kiekį (lygį) ir palygins su tam tikra ribine reikšme. Prieš ir po sąlygos abi nurodys būsenas, kai atsargų kiekis yra didesnis nei 0. Tai yra Kavos_papildytojas saugumo savybės. Gajos paslaugų modelis neaprašo įgyvendinimo, kurį dokumentuoja. Kūrėjas gali laisvai realizuoti, paslaugą bet kokioje aplinkoje, kurią jis laiko tinkamą. Pvz., jis gali nuspręsti paslaugą realizuoti kaip metodus objektiškai orientuota kalba. Alternatyviai, paslauga gali būti suskaidyta į tam tikrą metodų kiekį.
[taisyti] Pažinimo modelis
Pažinimo modelis aprašo komunikacinius ryšius tarp egzistuojančių agentų tipų. Jis neapibrėžia, kokios žinutės yra siunčiamos ar kada jos turi būti siunčiamos – paprasčiausiai nustato, kad egzistuoja komunikacijos. Jei konkrečiau, pažinimo modelio tikslas yra identifikuoti bet kokią potencialią komunikavimo vietą, veikimo metu galinčią sukelti problemas. Geriausia praktika yra užtikrinti, kad sistema būti laisvai apjungta, o tai gali padėti padaryti pažinimo modelis. Remiantis pažinimo modelio gali būti nustatyta būtinybė dar kartą atlikti analizės fazę ir pertvarkyti sistemos projektą, kad būtų pašalintos nustatytos problemos. Agentų pažinimo modelis yra paprasčiausias grafas, kurio mazgai atitinka agentų tipus, o grafo mazgų lankai (jungtys) atitinka komunikacijas. Agentų pažinimo modeliai yra orientuoti (išrikiuoti) grafai, kuriuose lankas a → b nurodo, kad a siųs žinutę į b, tačiau nebūtinai b siųs žinutę a. Pažinimo modelis gali būti išvestas/gautas tiesiai naudojant vaidmenis ir protokolus, agentų modelį.
[taisyti] Projektavimo procesas
Gajos projektavimo fazė apima:
- Agentų modelio sukūrimą:
- Agreguoti vaidmenis į agentų tipus ir perdirbti, kad būtų galima formuoti agentinio tipo hierarchija;
- Dokumentuoti kiekvieno agento tipo egzempliorius naudojant egzempliorių anotacijas;
- Sukurti paslaugų modelį, ištyrus veiklas, protokolus bei saugumo ir gyvybingumo vaidmenų savybes;
- Sukurti pažinimo modelį pasinaudojus sąveikos modelių ir agentų modeliu.
[taisyti] Apibendrinimas
Gajos metodas naudojamas analizei ir projektavimui sistemoms, kurios pagrįstos agentais. Pagrindiniai Gajos konceptai yra vaidmenys, kurie susieti su atsakomybėmis, leidimais, veiklomis ir protokolais. Vaidmenys gali sąveikauti tarpusavyje tam tikrais nustatytais būdais, kurie yra apibrėžti atitinkamų vaidmenų protokoluose. Savimi besidomintis agentai. Gaja nemėgina tiksliai susitvarkyti su sistemomis, kuriuose agentai nesidalina bendrais tikslais. Šios sistemų klasė be abejonės yra svarbiausia taikomoji sritis daugiaagentinėms sistemoms, todėl svarbu, kad metodas sugebėtų su tuo susidoroti.
[taisyti] Privalumai
Metodas naudoja atviras ir dinamiškas sistemas. Atviros sistemos yra tokios, kurių komponentai gali būti apjungti ir palikti veikimo metu, ir kurie gali būti sudaryti iš esybių, apie kurias projektuotojas neturėjo žinių projektuodamas – tai seniai buvo pripažinta kaip sudėtinga inžinerijos atlikimo prasme sistemos klasė.
Organizacijos struktūros. Kitas agentais pagrįstų analizės ir projektavimo aspektas, kad organizacijos struktūros supratimas reikalauja daugiau darbo. Tokios struktūros yra netiesiogiai apibrėžtos Gajos viduje – vaidmenyje ir sąveikos modeliuose. Agentai gali būti naudojami modeliuoti dideles organizacijas, kurios turi tiksliai apibrėžtą struktūrą. Tokių struktūrų atvaizdavimas gali būti vienintelis adekvatus būdas apimti ir suprasti organizaciją komunikaciją ir kontroliuoti struktūras. Naudojamas organizacijos projektavimo šablonų kūrimas gali būti naudingas sėkmingai pakartotinai panaudoti daugiaagentines sistemos struktūras.
[taisyti] Trūkumai
- Gaja nėra sukurta, kad agentas komunikuotų naudodamas konkretų standartą.
- Formalios semantikos trūkumas.

