scieee Open visual document viewer

Plataforma para la interoperabilidad de sistemas multi-agente

Sancho I Martínez, Joan

Abstract

Currently there are many platforms for designing agent systems on them, although the same agents only interact with each other in isolation to other external systems. With this project we want to make a communication channel that can be applied to any multiagent system to be able to communicate with different ones. The objective of the project consist to develop a communication module in the SPADE multi-agent system, to allow interactions with other multi-agent systems. The module is composed by an intelligent agent and a web service implemented with Flask. The communication protocol used is based on the REST architecture, that allows the interoperability between distributed systems in a web network. In order to achieve this main objective, different analyses are made to conclude the use of the multi-agent platform and the web framework mentioned above and different tests are done with different distributed systems to verify the performance of the implemented module.

Full text

Depa amen de Sis emes In o mà ics i Compu ació Uni e si a Poli ècnica de València Pla a o ma pe a la in e ope abili a de sis emes mul i-agen T eball Final de Màs e Màs e en In el·ligència A i icial, Reconeixemen de Fo mes i Ima ge Digi al Au o : Sancho i Ma ínez, Joan Tu o s: Julián Inglada, Vicen e Ja ie Cos a, Ângelo 2016 - 2017 Pla a o ma pe a la in e ope abili a de sis emes mul i-agen 2 Ag aïmen s Als meus u o s del p ojec e Vicen e Ja ie Julián Inglada i Ângelo Cos a, pe guia - me i ajuda -me en aques p ojec e. A Ja ie Palanca Cáma a, pe ajuda -me a comp end e millo la pla a o ma de SPADE. A la meua amília, pe ind e mol a paciència amb mi en la eali zació d’aques p ojec e. 3 Pla a o ma pe a la in e ope abili a de sis emes mul i-agen 4 Resum Ac ualmen exis eixen mol es pla a o mes pe a dissenya sob e elles sis emes d’agen s in el·ligen s, enca a que els ma eixos agen s només in e ac uen en e ells de o ma aïllada a al es sis emes ex e ns. Amb aques p ojec e es ol es abli un canal de comunicació que es puga aplica a qualse ol sis ema mul i-agen pe a pode comunica -se amb al es de di e en s. L’objec iu del p ojec e consis eix en desen olupa un mòdul de comunicació en la pla a o ma de sis emes mul i-agen SPADE, pe a pe me e la in e acció amb al es sis emes mul i-agen di e en s. El mòdul es compon en e un agen in el·ligen i un se ei web implemen a amb Flask. El p o ocol de comunicació que s’u ili za es basa en l’a qui ec u a REST, que pe me la in e ope abili a en e sis emes dis ibuï s en una xa xa web. Pe a aconsegui aques objec iu p incipal, es eali zen di e en s anàlisis pe a conclou e el e d’u ili za la pla a o ma mul i-agen i el amewo k web menciona s an e io men i es an di e ses p o es amb di e en s sis emes dis ibuï s pe a comp o a el uncionamen del mòdul implemen a . Pa aules clau: Sis emes mul i-agen , Pla a o mes d’agen s, SPADE, Py hon, REST, Flask. 5 Pla a o ma pe a la in e ope abili a de sis emes mul i-agen 6 Resumen Ac ualmen e exis en muchas pla a o mas pa a diseña sob e ellas sis emas de agen es in eligen es, aunque los mismos agen es sólo in e ac úan en e ellos de o ma aislada a o os sis emas ex e nos. Con es e p oyec o se quie e es ablece un canal de comunicación que se pueda aplica a cualquie sis ema mul i-agen e pa a pode comunica se con o as dis in as. El obje i o del p oyec o consis e en desa olla un módulo de comunicación en la pla a o ma de sis emas mul i-agen e SPADE, pa a pe mi i la in e acción con o os sis emas mul i-agen e dis in os. El módulo se compone en e un agen e in eligen e y un se icio web implemen ado en Flask. El p o ocolo de comunicación que se u iliza se basa en la a qui ec u a REST, que pe mi e la in e ope abilidad en e sis emas dis ibuidos en una ed web. Pa a consegui es e obje i o p incipal, se ealizan dis in os análisis pa a conclui el hecho de u iliza la pla a o ma mul i-agen e y el amewo k web mencionados an e io men e y se hacen di e sas p uebas con dis in os sis emas dis ibuidos pa a comp oba el uncionamien o del módulo implemen ado. Palab as cla e: Sis emas mul i-agen e, Pla a o mas de agen es, SPADE, Py hon, REST, Flask. 7 Pla a o ma pe a la in e ope abili a de sis emes mul i-agen 8 Abs ac Cu en ly he e a e many pla o ms o designing agen sys ems on hem, al hough he same agen s only in e ac wi h each o he in isola ion o o he ex e nal sys ems. Wi h his p ojec we wan o make a communica ion channel ha can be applied o any mul i- agen sys em o be able o communica e wi h di e en ones. The objec i e o he p ojec consis o de elop a communica ion module in he SPADE mul i-agen sys em, o allow in e ac ions wi h o he mul i-agen sys ems. The module is composed by an in elligen agen and a web se ice implemen ed wi h Flask. The communica ion p o ocol used is based on he REST a chi ec u e, ha allows he in e ope abili y be ween dis ibu ed sys ems in a web ne wo k. In o de o achie e his main objec i e, di e en analyses a e made o conclude he use o he mul i-agen pla o m and he web amewo k men ioned abo e and di e en es s a e done wi h di e en dis ibu ed sys ems o e i y he pe o mance o he implemen ed module. Keywo ds: Mul i-Agen Sys ems, Agen pla o ms, SPADE, Py hon, REST, Flask. 9 Pla a o ma pe a la in e ope abili a de sis emes mul i-agen •Anali za les di e en s pla a o mes mul i-agen , incloen les dissenyades pel G up de Tecnologia In o mà ica – In el·ligència A i icial del Depa amen de Sis emes In o mà ics i Compu ació, pe a desp és selecciona -ne una amb la que es eali za à el p ojec e. •Anali za els di e sos F amewo ks web pe a compa a -los i escolli -ne un amb el que s’implemen a à el se ei web REST. L’anàlisi dels di e sos F amewo ks depend à de la pla a o ma mul i-agen escollida an e io men . •Implemen a el mòdul REST dins de la pla a o ma mul i-agen , el qual consis i à en un agen de la pla a o ma amb uncionali a s d’un se ei REST. L’agen a implemen a ha de pode comunica -se amb els agen s del ma eix sis ema i els sis emes mul i-agen ex e ns. •Pa in del desen olupamen del mòdul REST, c ea un exemple bàsic on in e ac uen di e en s sis emes mul i-agen s, de mane a que es puguen oba possibles e o s de uncionamen i pode a egla -los. •Reali za un exemple més complexe de sis ema dis ibuï on es demos e la u ili zació del mòdul REST implemen a . L’exemple consis i à en que un sis ema ac a d’ob ind e in o mació d’una al a, que al ma eix emps ha d’in e ac ua amb al es sis emes dis ibuï s. Jun a la implemen ació dels di e en s sis emes de l’exemple, es eali za an p o es pe a comp o a el seu uncionamen i compa a di e en s casos d’execució. •Reali za un segon exemple que simule un en o n eal, on es ac a de esold e un p oblema eal. En aques cas l’exemple consis eix en la c eació d’un sis ema dis ibuï que es po aplica en el camp de la medicina, on els sis emes mul i-agen s’enca eguen de la coo dinació en e di e en s hospi als pe a decidi quin pacien necessi a amb més u gència el asplan d’un ò gan disponible. 1.3 Es uc u a La memò ia es di ideix en els següen s pun s: L’es a de l’a , el desen olupamen del mòdul, els sis emes implemen a s, les conclusions, la bibliog a ia i un glossa i. En l’es a de l’a s’explica en què consis eix una pla a o ma de sis emes mul i-agen , desc i in les pla a o mes que s’han anali za i aonan el pe què s’ha elegi la pla a o ma SPADE. També se desc iu l’a qui ec u a de p og ama i REST i la llis a de amewo ks web, que s’han ingu en comp e pe al inal selecciona aquella que s’ha u ili za pe a eali za el canal de comunicació, que es ac a de Flask. 16 La secció de desen olupamen del mòdul explica amb més p o undi a el uncionamen i el que pe me u ili za la pla a o ma de SPADE pe a eali za sis emes mul i-agen . Desp és con a el uncionamen del amewo k web Flask pe a eali za APIs web i inalmen es desc iu la o ma en que s’ha implemen a el mòdul REST, que pe me eali za in e accions amb al es sis emes, jun a un exemple bàsic amb dos sis emes mul i-agen , on s’explica pas a pas com es eali za una sol·lici ud simple a un al e sis ema. En l’apa a dels sis emes implemen a s es mos en els di e en s sis emes dis ibuï s implemen a s, amb la seua explicació de com es an dissenyades i les p o es eali zades pe a comp o a el seu uncionamen . Men es que un dels sis emes desen olupa s és menys complexe, l’al e es basa en la esolució d’un p oblema eal. En les conclusions s’explica els objec ius que s’han pogu aconsegui amb aques p ojec e jun a l’explicació de les di e en s p opos es que es poden eali za en un u u a pa i d’aques eball. Finalmen es oben els apa a s de bibliog a ia i glossa i, on espec i amen es mos en les on s d’in o mació que s’han consul a pe a e aques p ojec e i la llis a de pa aules que s’han u ili za en la memò ia que poden se un poc complicades d’en end e pe al lec o , jun amb la seua de inició. 17 Pla a o ma pe a la in e ope abili a de sis emes mul i-agen 2 Es a de l’a 2.1 Pla a o ma mul i-agen Una pla a o ma mul i-agen consis eix en un sis ema in o mà ic que pe me gene a un en o n i ual amb múl iples agen s in el·ligen s, que poden in e ac ua en e ells. Els agen s són componen s obe s i coope a ius amb in el·ligència a i icial, on cadascun d’aques s é una unció dins de la pla a o ma. Aques s sis emes pe me en esold e p oblemes que són di ícils o impossible de esold e pe pa d’un sol componen amb in el·ligència a i icial, de mane a que és necessà ia la in e acció en e di e sos agen s pe a oba una possible solució. Con enen un conjun d’eines que acili en el desen olupamen dels agen s i es al ien al p og amado la seua implemen ació, com pe exemple del sis ema de comunicació en e agen s o del moni o a ge dels es a s de cada agen . Respec e al sis ema de comunicació, és possible que els agen s espec en algun p o ocol es ànda d u ili za ambé pe mol es al es pla a o mes, com po se l’es ànda d FIPA. En gene al, una pla a o ma mul i-agen ha de p o ei un en o n de ida segu pe als agen s i p o ei se eis impo an s, que solen se p o ocols d’in e acció, on ologies i sis emes de anspo de missa ges, que poden es a implemen a s amb al es agen s in el·ligen s[1]. També ha de p o ei una eina de desen olupamen que pe me a als p og amado s la possibili a d’a egi manualmen codi pe sonali za als agen s en algun llengua ge de p og amació, amb l’objec iu de millo a -los en les seues uncions[2]. Exis eixen di e ses pla a o mes, on cada una d’elles po p o ind e d’una e sió an e io d’una al a o con é ca ac e ís iques idèn iques o p ou di e en s: Magen ix2. Es ac a d’una pla a o ma pe a sis emes mul i-agen s obe s, c eada pe la GTI-IA o G up de Tecnologia In o mà ica - In el·ligència A i icial de la Uni e si a Poli ècnica de València[3], com una millo a del p ojec e Magen ix, espec e a les seues uncionali a s i el p o ei nous se eis i eines que pe me en una adminis ació òp ima dels sis emes. L’objec iu p incipal de la pla a o ma és aplica la ecnologia dels agen s in el·ligen al món eal dels negocis, indús ia, logís ica, e-come ç, salu , e c. Un al e objec iu és desen olupa ecnologies que es puguen ap o i a en l’al dinamisme de la opologia dels sis emes i amb in e accions lexibles, on són conseqüència de la na u a au onòmica i dis ibuïda dels componen s. Seguin aques sen i , aques a pla a o ma ha sigu es esa pe a supo a in e accions lexibles en e p o ocols i con e sacions, i en e o gani zacions d’agen s. 18 P o eeix supo a es ni ells, on el p ime ni ell dona supo a les o gani zacions, ecnologies i ècniques elacionades en les socie a s d’agen s. El segon ni ell es cen a en les in e accions, ecnologies i ècniques elacionades en la comunicació en e agen s. El e ce es si ua en el supo a ni ell d’agen , ecnologies i ècniques elacionades en els agen s indi iduals, com el p opi ap enen a ge i aonamen . Magen ix2 u ili za el p o ocol AMQP o Ad anced Message Queing P o ocol, com a onamen pe a la comunicació en e agen s, que acili a la in e ope abili a en e en i a s he e ogènies, on en es a pla a o ma els agen s in e ac uen en e ells mi jança missa ges FIPA-ACL. La pla a o ma inco po a el se ei de publicació T ace Manage , que s’enca ega de coo dina els p ocessos de seguimen d’esde enimen s, pe me en als agen s publica o anula les publicacions que eali zen, subsc i in o donan -se de baixa, pe a pode as eja in o mació o consul a -ne en emps d’execució. Inco po a un nou ipus d’agen s, que es diu agen con e sacional o Cagen . Aques ipus d’agen pe me la c eació au omà ica de con e ses simul ànies basades en p o ocols d’in e acció, que poden es a p ede ini s o poden can ia de o ma dinàmica en emps d’execució. També inco po a agen s a gumen a ius, que implemen en un amewo k d’a gumen ació basa en casos pe a gene a a gumen s, pe a selecciona el millo a gumen a plan eja enin en comp e el con ex social, i pe a a alua els a gumen s p oposa s en el ma eix diàleg pe al es agen s. També es a in eg a en Magen ix2 el amewo k THOMAS o Me hods, Techniques and Tools o Open Mul i-Agen Sys ems, amb el p opòsi de p opo ciona un supo comple pe a les o gani zacions i uals. Els agen s enen accés a la in aes uc u a, o e a pe THOMAS, a a és d’un conjun de se eis que inclouen dos componen s p incipals, que són el acili ado de se eis i el se ei d’adminis ació d’o gani zacions. La uncionali a del acili ado de se eis és com la d’un se ei de pàgines g ogues i com la d’un desc ip o de se eis, que s’enca ega de p opo ciona un se ei de pàgines e des. El se ei d’adminis ació d’o gani zacions pe me la c eació i ges ió de qualse ol o gani zació, dels ols que segueixen els agen s i de les no mes que es ableixen el seu compo amen . Magen ix2 inco po a a pa un mòdul de segu e a que p o eeix ca ac e ís iques espec e a segu e a , p i aci a i in e ope abili a que no o e eixen al es pla a o mes d’agen s. Aques mòdul es basa en es ànda ds obe s i ecnologies de codi obe , de mane a que pe me el desen olupan de sis emes mul i-agen s segu s i obe s al ma eix emps. La pla a o ma o e eix supo na iu pe a pode execu a agen s de Jason, a pa dels agen s implemen a s en Ja a, de mane a que aques s agen s es poden bene icia de la comunicació i els se eis que o e eix Magen ix2. També é desen olupada una 19 Pla a o ma pe a la in e ope abili a de sis emes mul i-agen in e ície en HTTP que pe me als usua is supe isa i in e ac ua amb els agen s que es an en execució. JADE o Ja a Agen De elopmen F amewo k. És una pla a o ma de codi lliu e, c eada i desen olupada pe Telecom I alia[4], pe a desen olupa aplicacions basades en agen s in el·ligen s que compleixen les especi icacions FIPA pe a sis emes mul i- agen s in e ope ables. L’objec iu de la pla a o ma és simpli ica el desen olupamen al ma eix emps que ga an eix el complimen dels seus es ànda ds mi jança un conjun de se eis de sis emes i agen s. JADE po se conside a com un agen middlewa e que implemen a una pla a o ma mul i-agen s i un amewo k de desen olupamen . S’ocupa de o s aquells aspec es que no són p opis de la pa in e na de l’agen i que són independen s de les aplicacions, com el anspo de missa ges, la codi icació i l'anàlisi, o el cicle de ida dels agen s. L’a qui ec u a de JADE es compon de con enido s d’agen s, que poden dis ibui -se sob e una xa xa. Un con enido és un p océs Ja a p opo ciona pe l’en o n d’execució jun als se eis necessa is pe allo ja i execu a agen s. Hi ha un con enido p incipal, anomena main con aine , que ac ua com a pun d’inici de l’execució de la pla a o ma, de mane a que la es a de con enido s han d’uni -se a aques pe a que siguen egis a s en la pla a o ma. Els agen s s’implemen en com un il de p océs pe agen , enca a que aques s necessi en execu a asques en pa al·lel. Ap o i an la implemen ació mul ip océs que o e eix el llengua ge Ja a, JADE u ili za ambé la p og amació de compo amen s coope a ius. Du an el emps d’execució ambé s’inclouen alguns compo amen s pe a les asques més comunes en la p og amació d’agen s, com els p o ocols d’in e acció FIPA. JADE p opo ciona una in e ície g à ica pe a l’adminis ació emo a, el seguimen i el con ol de l’es a de cada agen . Pe me c ea i inicia l’execució d’un agen en un hos emo , amb la condició de que ha d’ha e un con enido d’agen que s’es iga execu an . També pe me con ola al es pla a o mes d’agen s emo es compa ibles amb FIPA. La pla a o ma o e eix es ipus di e en s d’agen s bàsics pe a la supe isió d’agen s i missa ges. Són: •DummyAgen , que pe me inspecciona els missa ges in e can ia s en e agen s, a pa d’inclou e una in e ície pe a edi a , eb e, gua da i en ia missa ges ACL en e agen s. 20 •Sni e Agen , que po segui o s els missa ges en ia s en o a la pla a o ma. Pe me mos a mi jança una in e ície o s els missa ges eali za s, de mane a que els gua da pe a un pos e io anàlisi. •In ospec o Agen , que pe me la supe isió del cicle de ida i l’in e can i de missa ges de cada agen . En elació a la negociació i coo dinació en e agen s, JADE simpli ica el seu desen olupamen en les aplicacions, on els ecu sos i la lògica del con ol es dis ibueixen en l’en o n del sis ema. Els agen s són p oac ius, que signi ica que poden con ola el seu p opi il d’execució, de mane a que es poden p og ama àcilmen pe a inicia l’execució sense cap in e enció pe pa de l’usua i, basan -se només en objec ius i es a s. Aques a ca ac e ís ica a que els en o ns gene a s pe JADE siguen adequa s pe a la eali zació d’aplicacions màquina a màquina, com pe exemple la au oma i zació d’una plan a indus ial o la ges ió d’una xa xa de comunicacions. Com que JADE compleix amb les especi icacions FIPA, aques a pla a o ma pe me la in e ope abili a en e agen s de di e en s pla a o mes. To es les aplicacions on aça al a la comunicació en e o gani zacions di e en s poden bene icia -se d’aques a in e ope abili a , incloen les de màquina a màquina. També o e eix un conjun homogeni d’APIs que són independen s de la xa xa subjacen i la e sió de Ja a, o e in les ma eixes APIs pe a J2EE, J2SE i J2ME. Aques a ca ac e ís ica pe me als desen olupado s d’aplicacions la eu ili zació del codi pe a di e sos disposi ius di e en s. Jack. És una pla a o ma que es desc iu com un en o n pe al desen olupamen , execució i in eg ació de sis emes mul i-agen s basa s en el llengua ge de p og amació Ja a. Ha sigu c eada pe Au onomous Decision-Making So wa e i es ac a d’una pla a o ma dissenyada a pa i d’al es an e io s c eades pe la p òpia emp esa, que són P ocedu al Reasoning Sys em i Dis ibu ed Mul i-Agen Reasoning Sys em[5]. Inclou el llengua ge de p og amació o ien a a agen s Jack i p o eeix ex ensions, o ien ades als agen s en el llengua ge Ja a, p opo cionan un en o n pe pode supo a un pa adigma de p og amació o ien a a agen s. Aques es ex ensions que an possible aques pa adigma són la de inició de no es classes base, in e ícies i mè odes. També hi ha en e les ex ensions una sin axis no a pe a que Ja a supo e les classes o ien ades a agen s i una semàn ica no a pe a supo a l’execució dels sis emes mul i-agen . Aques a pla a o ma es a an cen ada en aques pa adigma que compo a una g an e sa ili a espec e a l’a qui ec u a dels agen s, que es poden implemen a des d’o d es bàsiques amb Ja a a compo amen s comple s i complexos. 21 Pla a o ma pe a la in e ope abili a de sis emes mul i-agen L’en o n de desen olupamen p opo ciona la capaci a de c ea agen s p oac ius, socials i dis ibuï s, de mane a que s’adap en dinàmicamen a en o ns can ian s sense la necessi a de la in e acció humana. Jack es basa en una pla a o ma lleuge a que pe me execu a mol s agen s simul àniamen , incloen compu ado s po à ils com PDAs o Sma phones. L’es uc u a d’un agen es basa en els concep es del pa adigma BDI. El p ime concep e és el conjun de c eences que é l’agen sob e l’en o n. El segon és el conjun d’esde enimen s que ep de l’en o n, els quals l’agen po espond e. El e ce és el conjun d’objec ius que ol aconsegui i l’ul im concep e és el conjun de plans que pe me en desc iu e com a iba als objec ius pa in de les c eences de l’agen i els esde enimen s que an apa eixen a l’en o n. Els agen s de Jack no es an lliga s a cap llengua ge de comunicació en e agen s, de mane a que poden u ili za un p o ocol simbòlic d’al ni ell, com pe exemple el de FIPA-ACL. Una de les seues ex ensions més impo an s és la de Jack Teams, que a e e ència al pa adigma BDI i acili a el modela ge de les es uc u es socials i el compo amen coo dina . El compo amen d’un g up d’agen s, i en pa icula la coo dinació de l’ac i i a dels agen s, es de ineix des de l’en i a del g up, de mane a que cada g up d’agen s exis eix com una en i a amb c eences di e en s a les dels al es agen s que componen la pla a o ma. Aques a capaci a d’equip p opo ciona una base lexible, on una g an a ie a d’algo i mes de eball en equip poden se dissenyades, desen olupades i p o ades. Jack pe me la p og amació de ece ca de solucions o ien ades a equips d’agen s, amb cons uccions adequades pe a exp essa elacions socials en e agen s, com la exp essió de l’ac i i a coo dinada. Jack pe me aplica sis emes mul i-agen s en en o ns sin è ics. Els en o ns sin è ics simulen la ísica dels aspec es del món, com el e eny, clima, ehicles i pe sones. Pe al cas del compo amen humà, Jack u ili za una no a a qui ec u a cogni i a, Cojack, que pe me la c eació de models de la conduc a humana, que p e euen com els ésse s humans es compo en en una si uació de e minada, segons la eo ia en la que es basa aques a a qui ec u a. SPADE. És una pla a o ma d’agen s in el·ligen s basada en la ecnologia XMPP/Jabbe i que supo a l’es ànda d de comunicació FIPA. La pla a o ma ha sigu desen olupada en el llengua ge de p og amació Py hon i dis ibuïda amb una llicència de so wa e lliu e pe la GTI-IA de la Uni e si a Poli ècnica de València. A pa de ind e una pla a o ma pe a agen s, SPADE con é una llib e ia en o ma de mòdul de Py hon pe a pode c ea agen s amb o a una col·lecció de classes, uncions i eines. En un u u , aques a pla a o ma pe me à la u ili zació d’al es ipus d’agen s 22 implemen a s en al es llengua ges de p og amació, semp e que s’hi comuniquen mi jança el p o ocol XMPP amb missa ges de comunicació en el llengua ge FIPA-ACL. El p o ocol de missa ge ia XMPP con é un conjun de ca ac e ís iques que acili en la comunicació en e agen s. La p ime a és l’ús de la comunicació asínc ona, de mane a que un emisso emmaga zema el seu missa ge ins que el ecep o o ni a es a connec a . La segona ca ac e ís ica és la segu e a , que s’aplica en la capa de anspo XMPP que pe me l’in e can i de missa ges en e dos ex ems, on l’au en i icació i l’enc ip ació del canal de comunicació compleixen amb els p o ocols TLS i SASL. L’úl ima consis eix en la lexibili a que pe me XMPP, pe què es po es end e més enllà del seu ús en la missa ge ia ins an ània. Els agen s en SPADE es an compos os pe un mecanisme de connexió a la pla a o ma, un sis ema de ami ació de missa ges i un conjun de mè odes de compo amen . Les comunicacions son manipulades pe mi jans del p o ocol Jabbe . Aques p o ocol é un mecanisme pe a egis a i au en i ica usua is en un se ido de Jabbe , que en aques cas els clien s del se ido són agen s in el·ligen s. El sis ema de ami ació de missa ges que con é cada agen en SPADE ac ua de mane a que quan un agen ep un missa ge, l’emmaga zema en una cua, depenen del ipus de missa ge, i quan un agen ol en ia -ne un, el ami ado el posa en el se ido Jabbe ins que el puga eb e el ecep o . El compo amen d’un agen consis eix en una asca o unció que s’execu a a pa i d’una plan illa de missa ges, que con ola en e un conjun de plan illes quin dels mè odes de compo amen s’ha d’u ili za depenen dels ipus de missa ges que a eben l’agen . En e els ipus de compo amen s que o e eix SPADE es an el d’execu a una asca una egada o con ínuamen . Pa in d’aques s compo amen s, la pla a o ma pe me implemen a ambé als agen s com màquines d’es a ini , on un agen segueix una aça d’accions, ep esen a s com es a s, ins a a iba a un es a inal. SPADE ambé pe me la c eació d’agen s pa in de l’a qui ec u a de c eences, desi jos i in encions. El sis ema BDI es à desen olupada amb compu ació o ien ada a se eis jun a la compilació dinàmica de se eis, ambé coneguda com compu ació o ien ada a objec ius dis ibuï s. Cada agen BDI é una base de dades, on emmaga zemen les c eences que an adqui in . La o ma en la que es gua da aques a in o mació po se elegida en e un conjun d’implemen acions de PROLOG, que són SWI.P olog, Flo a2, Eclipse o SPARQL. Pe de ec e SPADE u ili za SpadeKB pe a e i a l’ús de mòduls ex e ns. SpadeKB supo a la lògica de p ime o d e, pe me a egi , elimina o busca c eences, i és capaç de emmaga zema dades en o ma de uples, els quals con enen un nom jun a un alo de di e en s ipus[6]. 23 Pla a o ma pe a la in e ope abili a de sis emes mul i-agen Jason. Es ac a d’una pla a o ma de sis emes mul i-agen desen olupada en Ja a amb codi obe pels desen olupado s Jomi F ed Hübne i Ra ael Hei o Bo dini. La u ili zació d’aques llengua ge de p og amació pe me la pe sonali zació de mol s aspec es d’un agen in el·ligen . La pla a o ma u ili za com a ex ensió del p og ama el llengua ge de p og amació o ien a a agen s Agen Speak pe a p og ama l’en o n de cada agen , a pa de que pe me implemen a ope acions semàn iques i el seu ús com a eina de desen olupamen de sis emes mul i-agen . Jason s’u ili za com un plugin pe a en o ns in eg a s de desen olupamen , com Eclipse o Ne Beans, i pe a al es pla a o mes de sis emes mul i-agen com si es ac és d’un middlewa e de sis emes dis ibuï s basa s en agen s, com pe exemple JADE. En el camp dels llengua ges de p og amació o ien a s a agen s in el·ligen s, Agen Speak es ac a d’un dels llengua ges abs ac es amb més in luencia basa en l’a qui ec u a BDI, que és una de les millo s ap oximacions espec e a la implemen ació d’agen s cogni ius. El ipus d’agen s p og ama s amb Agen Speak són mol es egades denomina s com a sis emes de plani icació eac ius. Una de les ca ac e ís iques més impo an s d’aques llengua ge és el seu onamen eò ic, que és una implemen ació de la semàn ica ope acional, o malmen aplica a aques llengua ge i a mol es de les ex ensions de Jason. A més d’in e p e a el llengua ge Agen Speak, Jason ambé con é al es ca ac e ís iques com el maneig de plans que no han ingu èxi du an la seua execució, ac e de pa la basa en la comunicació en e agen s i ano ació de c eences sob e les on s d’in o mació. També pe me l’ús d’ano acions d’objec ius decla a ius, a iables d’al o d e, o d es d’es il impe a iu en el con ingu d’un pla i a ies al es ex ensions de llengua ge. Jason é supo de sis emes mul i-agen i d’agen s que aonen sob e ells que u ili zen el model de Moise+, que és un model d’o gani zació de sis emes mul i-agen basa en nocions com ols, g ups i missions[7]. Respec e a l’elecció de la pla a o ma de sis emes mul i-agen s pe a implemen a el mòdul de Res ul, s’ha ingu en comp e que ha de se una pla a o ma desen olupada dins del g up GTI–IA de la Uni e si a Poli ècnica de València, ja que pe me la consul a i esolució de dub es di ec amen pe pa del seus c eado s i la possible millo a de la pla a o ma al a egi una no a unció, de mane a que la llis a de pla a o mes a pode u ili za en aques p ojec e es edueix a dos, Magen ix2 i SPADE. En e aques s dos s’ha escolli SPADE pe què es à implemen ada en Py hon, un llengua ge de p og amació amb una comuni a de p og amado que es à en c eixemen , i el seu sis ema pe me de e mina l’es a ac ual d’un agen en emps eal, mi jança la no i icació de p esència que u ili za el p o ocol de comunicació XMPP. 24 També pe me la ges ió d’o gani zacions d’agen s i é una co ba d’ap enen a ge en el seu ús més baixa que la de Magen ix2, degu a que s’ha u ili za an e io men pe a eali za al es p ojec es. Una egada escollida la pla a o ma mul i-agen , es eali za una explicació de l’a qui ec u a REST i de l’anàlisi dels di e en s F amewo ks web que es poden u ili za amb SPADE, que es mos en en els següen s apa a s. 2.2 REST Rep esen a ional S a e T ans e o el se ei web Res ul és una a qui ec u a de p og ama i que p o eïx la in e ope abili a en e sis emes in o mà ics dis ibuï s a a és d’In e ne . El e me REST es a in odui l’any 2000 pe Roy Thomas Fielding, que el a u ili za pe a dissenya el p o ocol HTTP 1.1 i l’iden i icado uni o me de ecu sos o URI. Amb aques e me se olia demos a com una aplicació web ha d’es a ben dissenyada, com si es ac a a d’una màquina d’es a s i ual, on un usua i po p og essa a a és de l’aplicació mi jança la selecció d’enllaços i ope acions com ansicions en e es a s, de mane a que en cada es a es ans e eix a l’usua i in o mació pe al seu ús[8]. REST pe me als sis emes eali za pe icions pe a accedi i manipula ecu sos web mi jança ope acions uni o mes, p ede inides i sense cap elació amb al es pe icions, seguin un p o ocol sense es a s, que s’explica à a con inuació. Un se ei d’aques ipus és un model cen a en les dades, on els ecu sos enen iden i ica s pe URIs i con é la in o mació emp an el o ma XML o JSON en e al es. Aques s ecu sos poden se manipula s pa in d'accions p ede inides en les capçale es HTTP. Fen ús d’ope acions independen s en e ells, un sis ema REST po aspi a a ind e un majo endimen , una majo iabili a i escalabili a , mi jança la eu ili zació de componen s que poden se ges iona s i ac uali za s sense a ec a a o el sis ema, inclús si es à en execució. El ipus d’ope acions pe meses en REST inclou aquelles p ede inides pe pa de HTTP, on les més u ili zades són: GET, pe a accedi o ob ind e in o mació d’un o múl iples ecu sos. POST, pe pode publica o c ea un nou ecu s. PUT, pe a ac uali za o eemplaça o a la in o mació d’un ecu s exis en amb al a in o mació. PATCH, pe a ac uali za o modi ica pa de la in o mació con inguda en un ecu s exis en . 25 Pla a o ma pe a la in e ope abili a de sis emes mul i-agen subsc ip o dins d’un e en pe me execu a un codi conc e , com en ia un missa ge o ca ega una ima ge. A pa exis eixen mol es ex ensions que millo en o apo en més uncionali a s al amewo k web[17]. El codi on de Py amid ambé es à en Gi Hub i es po execu a amb supo comple en les úl imes e sions de Py hon 2 i 3. En la p òpia pàgina web o icial exis eix una g an a ie a d’exemples, a pa d’una ex ensa documen ació amb les uncions de l’API del mic o amewo k, enca a que no hi han mol es e e encies a REST. Hi han di e sos g ups de comuni a s de p og amado s que pe me en deba e uncionali a s de Py amid, com esold e dub es o casos conc e s de la seua u ili zació en un se ei web. Tu boGea s. És un amewo k web dissenya mi jança l’a qui ec u a MVC pe Ke in Dangoo l’any 2005 amb llicència MIT. Pe me c ea se eis web an de pila comple a com de incomple a, al com an els mic o amewo ks web. Les o gani zacions o webs que l’u ili zen són Sou ceFo ge, la comuni a de Fedo a, Kamisons, PyF i Moksha en e al es. El amewo k web es à compos pe eines WSGI menudes que poden eballa en conjun i gene a bons esul a s, que són Kid, Genshi, Mako, SQLObjec i SQLAlchemy, que pe me en l’ús d’un model de dades, una base de dades elacional, el mo o de plan illes, i un con olado que ans o ma l’en ada de dades en o d es pe al sis ema web. Té supo simul ani de múl iples bases de dades, pa iciona de dades en ho i zon al, supo de a ies eines de Ja aSc ip i supo de di e sos o ma s d’in e can i de dades[18]. T eballa amb les úl imes e sions de Py hon 2 i amb les e sions de Py hon 3 a pa i de la 3.3, exis eix un eposi o i en Gi Hub amb el codi on del amewo k web, documen ació i eines de desen olupamen . També é una comuni a de p og amado s que pe me eali za consul es, c ea p ojec es i ex ensions de Tu boGea s. Hi han exemples d’implemen acions d’APIs web bàsiques pe in e ne , incloen algunes implemen acions d’APIs REST. web2py. És un al e amewo k web de pila comple a de codi obe c ea pe Massimo Di Pie o en el 2007 baix la llicència LGPL 3. web2py es à inspi a en Ruby on Rails i Django, de mane a que es cen a en un desen olupamen àpid i una a qui ec u a MVC. S’u ili za en mol es pàgines web com TechJobs, Mo uca, Meme o ge, Ou way i LinkFind . Po execu a -se amb Apache, Ligh pd, Che okee i amb mol s al es se ido s pe la ia de CGI, Fas CGI, WSGI, mod_p oxy o mod_py hon. Po es a acobla amb middlewa es i aplicacions WSGI de e ce s. U ili za mè odes de segu e a pe a 32 p e eu e ipus de ulne abili a s mol comuns en els se eis web i compleix amb les bones p àc iques e e en s a la enginye ia del so wa e, que an del codi dels se eis més llegible, escalable i àcil de man ind e, al com a el disseny model- iew-con olle , la alidació de la secció del se ido o el maneig segu d’a xius en ia s. U ili za múl iples p o ocols com HTML/XML, RSS/ATOM, PDF, JSON, AJAX i REST en e al es. Inclou un se ido web, una base de dades elacional, un en o n de desen olupamen web, un sis ema de ges ió d’in e ícies web, múl iples mè odes d'au en i icació, con ols basa s en ols, una capa abs ac a de base de dades i una memò ia cau basada en RAM i ROM pe a millo a l’escalabili a d’un sis ema[19]. S’execu a amb qualse ol de les úl imes e sions de Py hon 2, en PyPy o en Jy hon. El codi es po oba en el seu eposi o i de Gi Hub i exis eixen di e sos g ups de supo en di e en s idiomes. Exis eixen di e sos documen s ex ensos pe pa de la pàgina web o icial com pe pa de les comuni a s de p og amado s que es cen en en web2py, al igual que en exemples d’implemen acions de se eis o aplicacions web. To nado. Aques és un al e mic o amewo k web in en a l’any 2009 pe l’o gani zació F iendFeed amb la llicència Apache 2.0. Es ca ac e i za pe la seua llib e ia de c eació de xa xes asínc ones. També u ili za un sis ema I/O en xa xa sense bloqueig que pe me a To nado la u ili zació de mol es connexions obe es, sen ideal pe a aplicacions que eque eixen una connexió a lla g e mini amb dis in s usua is, i una llib e ia de co u ines que pe me esc iu e el codi asínc on d’una mane a més senzilla en comp es de la o ma de desencadenamen de c ides. El amewo k web o e eix, jun a un se ido HTTP, una al e na i a de sis ema de pila comple a a WSGI, on és possible u ili za To nado en un con enido WSGI o u ili za un se ido de To nado com un con enido d’un amewo k web amb es uc u a WSGI, enca a que qualse ol dels casos enen limi acions. En el cas d’u ili za To nado amb el seu p opi se ido HTTP s’aconsegueixen supe a aques es limi acions[20]. Supo a l’úl ima e sió de Py hon 2 i qualse ol de Py hon 3 a pa i de la e sió 3.3, enca a que és ecomanable l’ús de Py hon 2 pe a un millo supo del la ecnologia in eg ada de SSL. Exis eix un canal de supo o icials i pe a discussions en casos e e en s a l’ús de To nado, i un eposi o i en Gi Hub amb el codi on del amewo k amb la documen ació, exemples de se eis i in o mació espec e a llib e ies ex e nes que a egeixen uncionali a s a To nado. Pe a la selecció del amewo k web a u ili za en la implemen ació del mòdul Res ul en la pla a o ma de sis emes mul i-agen s, s’han anali za di e en s ca ac e ís iques de cadascun d’ells. S’ha compa a les úl imes e sions es ables de cadascun d’ells jun al 33 Pla a o ma pe a la in e ope abili a de sis emes mul i-agen emps que han es a exis in , pe a sabe si ac ualmen segueixen desen olupan -se i si es ac en de p ojec es de so wa e madu s, enca a que exis eixen casos de p ojec es amb pocs anys d’exis ència que es basen en al es amb mol s anys de desen olupamen i que es an enin una comuni a de p og amado s en c eixemen . Un al a ca ac e ís ica a ind e en comp e és la compa ibili a amb di e en s e sions de Py hon, on pe me o e si només es an disponibles pe a la e sió de Py hon 2 o es a implemen a o adap an -se ambé a Py hon 3, ja que suposa una millo a en el endimen dels p og ames compa a amb l’an e io e sió. També s’ha ingu en comp e si són amewo ks web de pila comple a o no, de mane a que el seu ús po demana o no un majo consum de ecu sos. Al es ca ac e ís iques impo an s són l’exis ència en In e ne d’exemples d’implemen acions de dis in s se eis webs de cadascun d’aques s amewo ks, conc e amen aquells elaciona s amb l’a qui ec u a i p o ocols de REST, on ambé pe me comp o a la co ba d’ap enen a ge en la u ili zació de cadascun d’ells, de mane a que pe me conéixe si la seua p og amació és in uï i a i eque eix poc de codi pe al seu uncionamen . Com a úl ima ca ac e ís ica compa ada és la llicència d’ús, pe sabe si és accessible el codi on del amewo k web i si exis eixen limi acions en la seua u ili zació. A con inuació es mos a una aula on es compa en les ca ac e ís iques de cadascun dels amewo ks desc i s an e io men (Fig. 1). 34 F amewo k web Úl ima e sió es able Anys en ac i i a Ve sions de Py hon Tipus de amewo k web Exemples de codi REST Ap enen a ge d’ús Llicència Flask 0.12.2 (2017) 7 anys 2.6+, 3.3+ Mic o amewo k Mol s Ràpid BSD Bo le 0.12.13 (2017) 8 anys 2.5+, 3.x Mic o amewo k Mol s Ràpid MIT Falcon 1.2.0 (2017) 4 anys 2.6+, 3.3-3.5 Mic o amewo k P ou Ràpid Apache 2.0 Django 1.11.1 (2017) 12 anys 2.7, 3.4+ F amewo k de pila comple a P ou Len BSD de 3 clàusules Che yPy 10.2.2 (2017) 16 anys 2.6+, 3.x Mic o amewo k Pocs Mi jà BSD Py amid 1.8.3 (2017) 9 anys 2.7, 3.4+ Mic o amewo k P ou Mi jà BSD Tu boGea s 2.3.10 (2016) 12 anys 2.6+, 3.3+ Mic o amewo k - F amewo k de pila comple a Pocs Len MIT web2py 2.14.6 (2016) 10 anys 2.6+ F amewo k de pila comple a Pocs Len LGPL 3 To nado 4.5.1 (2017) 8 anys 2.7, 3.3+ Mic o amewo k P ou Mi jà Apache 2.0 Fig. 1. Compa ació de ca ac e ís iques dels F amewo ks web En un p incipi, s’han desca a aquells que consis eixen en amewo ks web de pila comple a, degu a que poden eque i de mol s ecu sos i no és ecomanable pe a implemen a un se ei web d’aques ipus amb un agen de SPADE, que eque eix de poca cà ega. Desp és s’han desca a els que no enen una co ba d’ap enen a ge àcil, no mol in uï ius a l’ho a de p og ama i que no enen una comuni a en In e ne que publiquen mol s exemples d’implemen acions d’APIs Res ul, de mane a que al inal només queden dins de la selecció els mic o amewo ks web Flask i Bo le. Aques s dos amewo ks web enen unes ca ac e ís iques mol simila s, inclús en la implemen ació d’APIs web, enca a que enen di e en s llicències, que en el seu ús són simila s. No supo en les ma eixes e sions de Py hon pe ò si que se poden u ili za en les úl imes an de Py hon 2 i 3, i només es duen un any de madu esa e e en al seu so wa e. També si ap o undim en les di e encies d’aques s amewo ks, Flask con é un ges o d’a xius web pe a la c eació i modi icació de pàgines web, pe me la 35 Pla a o ma pe a la in e ope abili a de sis emes mul i-agen u ili zació de mol es ex ensions1 i es mos a en mol s documen s elle an s e e en s a l’ap enen a ge en la implemen ació de se eis web en Py hon mi jança mic o amewo ks2. Pe l’al e cos a , Bo le es à implemen a només amb la llib e ia es ànda d de Py hon dins d’un únic a xiu de codi i demos a se mol àpid, al com mos en alguns anàlisis de endimen de di e en s amewo ks web en e sions es ables an e io s3. Pa in de les ca ac e ís iques mencionades an e io men , inalmen s’ha escolli Flask. Enca a que Bo le é millo endimen du an la seua execució, s’ha p e e i més la acili a de oba in o mació sob e implemen acions de codi i in o mació espec e a la esolució de dub es o p oblemes simila s als d’al es p og amado s. També s’ha ingu en comp e que Flask po se i en un u u com a mic o amewo k web pe a pos e io s p ojec es, on és possible l’ús d’HTML. Amb aques a selecció s’implemen a à el se ei REST que s’inco po a à en la pla a o ma de sis emes mul i-agen s SPADE. Açò s’explica à en el següen apa a , on es mos a el uncionamen del sis ema SPADE, del mòdul REST i de quina mane a s’ha p og ama aques a inse ció a un agen . 1 Quo a. Flask s. Bo le, wha a e hei ad an ages and disad an ages? h ps://www.quo a.com/Flask- s- Bo le-wha -a e- hei -ad an ages-and-disad an ages 2 Google. Google sea ch: py hon amewo k es . h ps://www.google.es/sea ch? q=py hon+mic o amewo k+ es &ie=UTF-8&sa=Sea ch&channel= e&clien =b owse - ubun u&hl=en&gws_ d=c ,ssl&ei=TdM6W 2TB8ixa nlh gP#channel= e&hl=en& bm=bks&q=py hon+ amewo k+ es 3 Ki ill Kleno . Py hon Web F amewo k Benchma ks. h p://klen.gi hub.io/py- amewo ks-bench/# esul s 36 3 Desen olupamen 3.1 SPADE Ja s’ha menciona an e io men que SPADE és una pla a o ma d’agen s in el·ligen s implemen ada en Py hon basada en el p o ocol XMPP i que supo a l’es ànda d FIPA. També s’ha ia di com es à compos un agen en la pla a o ma i quins ipus da compo amen s u ili za pe a pode eali za accions. Pe a que es puga execu a un sis ema de SPADE, p ime cal c ea la pla a o ma i desp és a egi -hi els agen s mi jança un sis ema de egis amen XMPP, que manipula in e namen les comunicacions i els egis es de la pla a o ma mul i-agen s. Cada agen , quan es egis a en la pla a o ma, ho a amb un iden i icado , conegu com Jabbe ID o JID, i una con asenya. El JID es mos a com una di ecció de co eu compos a pe un nom d’usua i i un domini de se ido , que pe al cas dels agen s es ac a del nom que s’u ili za pe a iden i ica -lo i el se ido des d’on s’es à execu an . No malmen la di ecció XMPP d’un agen és el seu p opi canal de comunicació, on s’a egeix el p e ixe ‘xmpp://’. Si el egis e es eali za amb èxi , l’agen man end à un canal de comunicació XMPP obe amb la pla a o ma. Un agen in el·ligen en SPADE es compon pe un mè ode _se up() i un conjun de mè odes de uncionali a , que poden se opcionals. El p ime mè ode es ac a de la p ime a pa que s’execu a en un agen quan s’ac i a desp és de egis a-se en una pla a o ma. El _se up() s’u ili za no malmen pe a iniciali za pa àme es de e mina s, egis a se eis en el acili ado de se eis o agen s en el sis ema d’adminis ació d’agen s de la pla a o ma, o a egi mè odes de compo amen al p opi agen . Els mè odes de compo amen consis eixen en les uncionali a s o les asques que po eali za un agen dins de la pla a o ma, que es poden de ini com a ies subclasses d’un agen , ins ancian -les des del mè ode _se up() pe a que es puguen execu a . També es poden de ini compo amen s com una classe o a del cons uc o d’un agen s, que s’a egeix a l’agen quan aques es egis a en la pla a o ma i comence a execu a -se, de mane a que s’e i a la epe ició de codi en dis in s agen s que enen compo amen s idèn ics. A con inuació es mos a un diag ama de seqüència(Fig. 2), on un sc ip egis a i execu a un agen dins d’una pla a o ma de SPADE. Una egada ac i a , l’agen execu a au omà icamen el seu mè ode _se up(). Desp és aques agen segui à ac iu en la pla a o ma ins que el sc ip decidisca pa a la seua execució. 37 Pla a o ma pe a la in e ope abili a de sis emes mul i-agen El compo amen d’un agen pe de ec e con é dos mè odes, que són onS a () i _p ocess(), on el p ime s’execu a quan comença a execu a -se el compo amen i el segon el segueix en l’execució. Les di e ències que n’hi han en e aques s mè odes són que _p ocess() cal de ini -lo en un mè ode de compo amen obliga ò iamen men es que onS a () és opcional i que el mè ode onS a () dins d’un compo amen s’execu a una egada men es que _p ocess() s’execu a de mane a epe i i a ins que es de é l’agen . Es a combinació de mè odes dins d’un compo amen pe me la iniciali zació de a iables que desp és s’ani an modi ican con ínuamen ins que l’agen de amb aques compo amen deixi de unciona o es desconnec a de la pla a o ma mul i-agen . Els compo amen s que poden u ili za els agen s in el·ligen s són del ipus Cyclic, Pe iodic, One-Sho , Time-Ou , E en i Fini e-S a e-Machine. El compo amen Cyclic, al com ho diu el seu nom, s’u ili za pe a eali za asques epe i i es de mane a inde inida. Es ac a del mè ode de compo amen més simple, o ma pels dos mè odes menciona s an e io men . Pa in d’aques compo amen es basen la es a. El compo amen Pe iodic unciona igual que el Cyclic, amb la di e encia de que es po de e mina un emps d’espe a en e di e en s execucions del mè ode _onTick(), que se ia l’equi alen al de _p ocess() en el ipus Cyclic. La du ació de la pausa en e dos i e acions es de e mina en el momen que es c ea l'ins ancia del compo amen . 38 Fig. 2. Execució d'un agen bàsic En el diag ama de seqüència an e io (Fig. 3) es mos a un exemple d’execució dels compo amen s Cyclic i Pe iodic, on de o ma pa al·lela, el sc ip i l’agen c een di e en s ins àncies dels compo amen s i els a egeixen a l’agen egis a . Una egada egis a s, les ins àncies de compo amen execu en ambé en pa al·lel en e ells, el mè ode onS a (), segui pel de _p ocess(), pe al cas del ipus Cyclic, i el mè ode _onTick() pe al ipus Pe iodic. Aques s dos úl ims mè odes s'execu a an con ínuamen ins que es decidisca pa a a l’agen , que s’enca ega à de emou e les seues ins àncies de compo amen abans d’a u a -se. Amb el cas de One-Sho , el compo amen només s’execu a una egada i con é un e ce mè ode opcional, onEnd(), que s’u ili za quan la ins ància del compo amen aja a inali za , de mane a que po se ú il pe a eali za asques espo àdiques. Respec e al ipus de compo amen Time-Ou , es po desc iu e com una a iació del ipus One- Sho amb la uncionali a de pa a la seua execució du an un ce emps, decla a en el momen d’ins ancia el compo amen a l’agen . En aques ipus, el mè ode _p ocess() es à subs i uï pel de imeOu (), que s’execu a desp és d’ha e passa el emps d’espe a, segui pel de onEnd(). El següen diag ama(Fig. 4) mos a el uncionamen dels compo amen s One-Sho i Time-Ou , que en la o ma de c ea -los i a egi -los a un agen és idèn ic al dels mè odes de compo amen menciona s an e io men . La di e ència es oba en que es poden compond e de es mè odes que es an execu an un da e e d’al e di ec amen , excep e en el cas del ipus Time-Ou , que espe a abans d’execu a el mè ode imeOu () uns segons, de e mina s en el momen d’a egi la ins ància a l’agen 39 Fig. 3. Execució dels en o ns Cyclic i Pe iodic Pla a o ma pe a la in e ope abili a de sis emes mul i-agen egis a . També es à la di e ència de que l’agen no necessi a emou e aques es ins àncies quan es de é, ja que s’eliminen de la llis a de compo amen s ac ius de l’agen quan inali zen la seua execució. El ipus de compo amen E en és ambé pa egu al de One-Sho espec e al e de que només s’execu a una ol a, pe ò es ca ac e i za pel cas de que no comença a execu a -se desp és d’ins ancia -lo i a egi -lo a l’agen , sinó que s’execu a quan l’agen al que s’ins ancia ep un missa ge en conc e . Pe a pode ins ancia un compo amen del ipus E en , cal a egi ambé una plan illa amb les ca ac e ís iques necessi a ies, que consis eixen en els pa àme es que ha de ind e el missa ge que el desencadena. 40 Fig. 4. Execució dels en o ns One-Sho i Time-Ou En el diag ama de seqüència d’abans(Fig. 5) es isuali za com unciona el compo amen E en , on l’agen egis a en la pla a o ma c ea i a egeix la ins ància del ipus One-Sho i el sc ip a egeix el de ipus E en a l’agen . Men es que el mè ode One-Sho es a execu an , el compo amen E en no s’ac i a ins que l’agen al que es à a egi eba un missa ge en conc e , de e mina an e io men du an la c eació de la ins ancia. Una egada que la ins ància One-Sho en ia a l’agen el missa ge, l’agen ac i a l’al e compo amen pe a que s’execu e. Pe a aques exemple s’han ob ia els mè odes onS a () i onEnd() pe als di e en s mè odes de compo amen , ja que les seues implemen acions són opcionals. El compo amen del ipus Fini e-S a e-Machine es po de ini com un conjun de compo amen s que ep esen en els dis in s es a s d’una màquina d’es a ini , on el compo amen d’un agen a can ian con o me es a ansi an en e els di e en s es a s. Tal com es à o ma una màquina d’es a ini , aques ipus es ca ac e i za pe un compo amen inicial, un compo amen inal, un conjun d’in e medis i un g up de ansicions unidi eccionals en e compo amen s. El mè ode del ipus Fini e-S a e-Machine es decla a amb un conjun de compo amen s com els menciona s an e io men i un conjun de mè odes que ja enen de ini s en la classe FSMBeha iou (), que a e e ència al mè ode que c ea màquines d’es a ini . 41 Fig. 5. Execució de l'en o n E en amb un en o n One-Sho Pla a o ma pe a la in e ope abili a de sis emes mul i-agen El diag ama de seqüència que es mos a a con inuació(Fig. 9) explica com es comunica ia SPADE amb una pla a o ma ex e na mi jança l’agen que s’enca ega del p o ocol de REST, on es mos a p ime el cas en que la pla a o ma SPADE a d’emisso i la ex e na de ecep o , i un segon cas on es can ien aques s cà ecs: Amb la in o mació de com unciona Flask i on es si ua ia el mòdul web de REST, ja es é una idea de com s’ha d’implemen a l’agen REST dins d’un sis ema mul i-agen de 48 Fig. 9. Funcionamen de l'agen REST Fig. 8. Rep esen ació en capes de la comunicació en e una pla a o ma de SPADE i una al a ex e na SPADE. La o ma en la que s’implemen a aques agen s’explica en el següen subapa a . 3.3 Implemen ació An e io men s’ha explica com unciona el se ei web de REST amb Flask, de mane a que ep sol·lici uds i e o na les dades necessà ies. En aques pun s’explica à com ep l’agen in el·ligen a implemen a aques es pe icions i ac a de ecopila la in o mació necessà ia mi jança la coope ació dels al es agen s que o men el sis ema en el que es oba, pe a desp és dona -la al se ei web, que ho en ia al clien . Pe comença , s’ha de ind e en comp e que el se ei web c ea amb Flask i l’agen al que es ol a egi aques se ei eali zen les seues asques en ils d’execució di e en s, de mane a que es necessa i implemen a un sis ema de comunicació en e aques s dos pe a que puguen sinc oni za -se quan l’agen ob inga la in o mació de les pe icions que a eben el se ei web, i quan el se ei sàpiga si ja es à p epa ada la in o mació que ha ecopila l’agen pe a e o na -la al clien . S’ha de ind e en comp e ambé que no es po a egi aques se ei web dins de l’agen com si es ac és d’un compo amen , degu a que exis eixen p oblemes amb la llis a d’a gumen s dels mè odes que s’implemen en amb a iables ob ingudes a pa i d’URIs, si al ma eix emps es ac en com a mè odes d’una classe. Pe a eali za aques a comunicació en e agen i se ei, s’ha dissenya dins de l’agen una llis a de pe icions(Fig. 10), on es an a egin les sol·lici uds que ep el se ei web i on l’agen ac a de comple a -les a egin les dades necessà ies. La llis a de pe icions consis eix en un dicciona i, on la clau de cada sol·lici ud és un iden i icado numè ic únic i el alo és una llis a de pa àme es. Aques a llis a de pa àme es es à o mada com a mínim pe un alo d’es a de la pe ició, el ipus de pe ició i un camp bui , on es gua da la in o mació que cal e o na a un clien . El alo d’es a pe me comp o a si una pe ició enca a no ha sigu anali zada pe l’agen , es à comp o ada pe l’agen pe ò enca a es à en p océs d’ob ind e la in o mació a e o na , o ja é la in o mació necessà ia pe a en ia -la al seu clien co esponen . El pa àme e e e en al ipus de pe ició pe me a l’agen ges iona quina in o mació cal ob ind e, depenen de si es ac a pe exemple d’una pe ició GET, PUT o POST. A la llis a de pa àme es es poden a egi més camps opcionals en el casos on la sol·lici ud que s’ob é con é a gumen s addicionals, que pe me especi ica les dades que eque eix la asca que ha de eali za la pla a o ma d’agen s, semp e que l’agen que es comunica amb el se ei Res ul sàpiga com ges iona aques s pa àme es. 49 Pla a o ma pe a la in e ope abili a de sis emes mul i-agen Quan el se ei web ep una pe ició, c ea un dicciona i amb els camps de p opie a s necessa is, l’a egeix a la llis a de sol·lici uds de l’agen REST i espe a ins que comp o e que el alo d’es a de la pe ició demos e que ja s’ha ob ingu la in o mació, pe a desp és accedi al con ingu del dicciona i i en ia -ho al clien . L’agen REST es compon pe di e en s compo amen s, que són el mè ode ecep o de pe icions del se ei web, el compo amen ecep o d’in o mació de la pla a o ma i el mè ode de compo amen que pe me eali za pe icions a pla a o mes ex e nes. El compo amen ecep o de sol·lici uds del se ei s’enca ega que eali za les comunicacions amb els di e en s agen s de la pla a o ma on es oba depenen del ipus de sol·lici uds que ep. Aques compo amen , que és del ipus Cyclic, comença buscan en la seua llis a de pe icions, de mane a que si oba un dicciona i que no ha sigu comp o a pe ell, modi ica el seu alo d’es a , de e minan que la sol·lici ud es à en p océs de busca una espos a a e o na , i comp o a el seu ipus de pe ició. Depenen del ipus de sol·lici ud, l’agen REST c ea à un missa ge o al e, enin en comp e ambé de si la sol·lici ud con é camps de p opie a s ex a, i l’en ia à a l’agen de la pla a o ma que li co esponga. El mè ode de compo amen pe a ob ind e in o mació pe pa de la pla a o ma, que ambé és del ipus Cyclic, pe me eb e missa ge espec e a les espos es de les pe icions, gene ades pe la es a d’agen s in el·ligen s, de mane a que ob é la pe ició incomple a de la seua llis a i l’a egeix la in o mació ob inguda, can ian ambé el alo d’es a del dicciona i pe a de e mina que la sol·lici ud ja es à p epa ada pe a e o na al clien . Pe úl im, el compo amen que eali za pe icions ex e nes unciona a pa i de missa ges que a eben pe pa dels al es agen s de la ma eixa pla a o ma SPADE, on pa in del con ingu del missa ge ob ingu s’especi ica la pe ició que es ol eali za , mi jança la llib e ia de Py hon Reques s. Una egada ob ingu la in o mació pe pa de la pla a o ma ex e na, s’emmaga zema en un missa ge amb les p opie a s necessà ies i es e o na a l’agen que ho ha demana . 50 Fig. 10. Rep esen ació de la pe ició dins de l'Agen REST En la in e acció en e el se ei Res ul i l’agen REST ambé s’u ili za un sis ema de con ol de concu ència, pe a e i a condicions de ca e a en e els dos. El sis ema de con ol implemen a pe me de ind e l’execució del mè ode que ac i a Flask quan ep una sol·lici ud, de mane a que el bloqueja ins que l’agen REST de e mine el alo d’es a de la sol·lici ud c eada en la llis a com a comple ada. La aó d’aques bloqueig es à en que exis eix una condició de ca e a en el cas de que Flask in en e e o na in o mació al clien abans de que s’haja ecopila i ebu pe pa de l’agen REST. En el següen diag ama de seqüència es po o e com s’execu en i in e ac uen l’agen REST i el se ei Res ul implemen a en Flask, on ambé es ep esen a la in e acció en e l’agen REST amb els al es agen s de la pla a o ma i en e el se ei web amb un sis ema mul i-agen ex e n(Fig. 11): Enca a que aques p o ocol d’in e acció pe me a ges iona les pe icions, comunica -se amb la es a de la pla a o ma i e o na al clien la in o mació desi jada, exis eixen casos en que la pla a o ma SPADE es bloqueja inde inidamen en mi a de l’ob enció d’in o mació, de mane a que el se ei Res ul es queda ambé bloqueja inde inidamen espe an una espos a pe pa de la pla a o ma. Pe a esold e aques p oblema, s’ha a egi al sis ema de con ol de concu ència una condició d’espe a, de mane a que si no s’ha eali za la pe ició en un emps de ini , s’elimina la pe ició de la llis a de dicciona is, es einicia l’execució dels compo amen s dels agen s a ec a s d’aques a mane a i s’en ia al clien un missa ge d’e o , amb el codi d’es a HTTP co esponen al ipus de p oblema. 51 Fig. 11. Diag ama de seqüència de la comunicació en e l'agen REST i el se ei web Pla a o ma pe a la in e ope abili a de sis emes mul i-agen Un segon cas a ind e en comp e en aques p o ocol és el de l’accep ació pe pa de Flask de pe icions dinàmiques amb a iables dins de la URI o pa àme es necessa is que la pla a o ma de SPADE o el se ei Res ul són incapaços d’en end e pe e o s de sin axi, de mane a que poden a ec a al uncionamen de la pla a o ma. Aques p oblema es esol dins del ma eix mè ode del se ei web que s’ac i a al eb e una sol·lici ud abans d’a egi -la a la llis a de sol·lici uds de l’agen REST, de mane a que es comp o a si o es les a iables i pa àme es impo an s són del ipus adequa i ep esen a s de mane a co ec a. Si alguna d’aques es dades no es à ben ep esen ada, es espon di ec amen al clien amb l’e o de ec a . Al igual que aques s p oblemes poden apa éixe en la pla a o ma de SPADE, ambé pod ien ocó e en al es de ex e nes i que al ma eix emps no ho enen esol , de mane a que ambé exis eix el cas de que la nos a pla a o ma es quede bloquejada o ac ue de mane a inco ec a quan s’in en e eali za una pe ició a una pla a o ma ex e na i no e o na una espos a. Pe a aques cas, la llib e ia Reques s pe me de ini un emps d’espe a de la espos a, de o ma que si s'excedeix aques emps d’espe a, es alla la connexió amb la pla a o ma ex e na i es e o na a l’agen que demana a la pe ició un missa ge d’e o en la comunicació. També exis eix el cas en el que s’in en e eali za una pe ició a una di ecció no àlida, on se cap u a ia l’excepció de la ma eixa o ma que en el cas an e io . Respec e a la u ili zació del compo amen de eali za sol·lici uds a sis emes o se eis ex e ns, com que po se demana pe qualse ol agen del domini del sis ema, s’ha pensa en que el compo amen l’a egeix a l’agen REST aquell agen que ullga u ili za -lo. Amb aques a idea, qualse ol agen po demana e una pe ició a l’agen REST sense eali za una cua d’espe a de o es les sol·lici uds que s’han de eali za enca a, de mane a que cadascuna d’aques es es eali zen en pa al·lel. La pa al·leli zació d’aques compo amen pe me edui el emps necessa i pe a eali za una pe ició ex e na, a pa de que no bloqueja el uncionamen de di e sos agen s del sis ema. Com a úl im de all que s’ha ingu en comp e espec e a la implemen ació de l’agen REST, és la u ili zació de codis d’es a HTTP en les espos es de cada sol·lici ud, an pe pa del se ei Res ul com pe pa de l’agen Res al eali za pe icions web, en el cas de que es gene e qualse ol e o no elaciona amb el se ei ex e n. La u ili zació de codis d’es a pe me especi ica el ipus de espos a que s’ha gene a seguin un es ànda d ap o i a pe mol íssimes aplicacions web, de mane a que qualse ol po en end e com s’ha eali za la pe ició. El conjun de codis es di ideix en cinc g ups: 52 Respos es in o ma i es. Aques s ipus de codis demos en que el se ido ha ebu la pe ició i que el clien po con inua en ian in o mació. Es dis ibueixen en e la p ime a cen ena de núme os. Pe icions co ec es. Es os codis indiquen que la sol·lici ud eali zada s’ha ebu co ec amen , en és i accep ada. Es si uen en el segon cen ena de la llis a de codis. Redi eccions. Aques a classe de codi a isa de que el clien ha de eali za una acció addicional pe a comple a la pe ició. La acció addicional ha de se eali zada pe un agen d’usua i. Els codis d’aques ipus ocupen la e ce a cen ena. E o s del clien . És el g up de codis que demos en que la pe ició eali zada con é sin axis inco ec a o que no es po p ocessa en el se ido . Gene almen an e e ència a que el clien no ha eali za una sol·lici ud de mane a co ec a. Es dis ibueixen en la qua a cen ena de núme os. E o s del se ido . Aques s codis signi iquen que el se ido no ha pogu comple a la sol·lici ud del clien , enin en comp e que la pe ició eali zada pel clien és apa en men alida. Els codis es si uen en el cinqué cen ena de la llis a. Pa in de les uncionali a s implemen ades en l’agen REST, només a an al a codis d’es a que demos en pe icions co ec es, sol·lici uds e ònies i esul a s no desi jables pe pa del se ido . En la aula que hi ha a con inuació es mos en els codis HTTP u ili za s, jun a la seua desc ipció i si el que eali za la seua no i icació és el se ei web al eb e les sol·lici uds o l’agen Res al eali za una pe ició: 53 Pla a o ma pe a la in e ope abili a de sis emes mul i-agen Codi d’es a Componen que ho no i ica Desc ipció 200 Se ei web La pe ició s’ha eali za co ec amen . 201 Se ei web La pe ició e e en a la inse ció d’un nou ecu s s’ha e ec ua de mane a co ec a. 400 Se ei web La pe ició é e o s de sin axi. 404 Agen REST La pe ició no exis eix. 406 Se ei web La pe ició no s’adme en el se ido . 408 Agen REST El clien ha supe a el seu emps d’espe a de la espos a. 500 Se ei web El se ido ha oba un e o in e n al eali za la pe ició. Fig. 12. Codis d'es a HTTP u ili za s Respec e a les es iccions que é el se ei web, en un p incipi no es po decidi si incompleix o no alguna pe de e mina si és del ipus REST, pe què escasseja de uncionali a com a API web i depén d’un sis ema implemen a sob e la pla a o ma SPADE. Pa in del sis emes dis ibuï s dissenya s, que s'explica an més enda an , es pod à comp o a si les APIs implemen ades en cadascun d’ells complixen amb els equisi s d’una a qui ec u a REST. En el següen subapa a s’explica com unciona ia un sis ema dis ibuï simple amb el mòdul REST que s’ha aconsegui implemen a . 3.4 Exemple bàsic A con inuació s’explica com s’implemen a amb codi un exemple de comunicació en e dos sis emes mul i-agen de SPADE, eali zan un seguimen s de les uncions que es an u ili zan du an l’execució de l’exemple, on una eali za una sol·lici ud d’ob ind e in o mació i l’al a ac a à de e o na una cadena de ca àc e s. Cadascun dels sis emes es componen de dos agen s, que són l’agen REST i de domini, que eali za la pe ició o gene a la in o mació a e o na . 54 Pe pa del sis ema que eali za la pe ició només cal impo a les llib e ies de SPADE i Reques s, a més de c ea una a iable global on s’emmaga zema l’ad eça on s’execu en els agen s del sis ema(Fig. 13). La seua execució comença ia amb la c eació dels agen s del sis ema, a egin a l’agen REST els compo amen s necessa is amb les seues plan illes de missa ges amb els que pe me en execu a -los(Fig. 14). En el cas del sis ema que eali za la ecepció de la sol·lici ud, inicialmen es decla en les llib e ies de SPADE, de l’ob enció del emps ac ual i les necessà ies de Flask pe a c ea el se ei web i e o na missa ges d’e o en el cas de oba e o s en l’ob enció de la in o mació a en ia a l’emisso . Respec e a les a iables globals, a an al a la que emmaga zema l’ad eça del sis ema mul i-agen , el emps màxim que po a da el sis ema a e o na pe icions i la a iable on s’emmaga zema el se ei Res ul(Fig. 15). 55 Fig. 13. Llib e ies i a iables globals del sis ema emisso impo spade impo eques s spadeHos = "" Fig. 14. Iniciali zació del sis ema emisso spadeHos = "127.0.0.1" a = MyAgen ("agen @"+spadeHos , "sec e ") es = es Agen (" es @"+spadeHos , "sec e ") acl = spade.Beha iou .ACLTempla e() acl .se Pe o ma i e(" eques ") = spade.Beha iou .MessageTempla e(acl ) es .addBeha iou (makeReques (), ) a.s a () es .s a () Pla a o ma pe a la in e ope abili a de sis emes mul i-agen L’execució d’aques a pa de l’exemple se ia igual que el demos a an e io men , amb la di e encia que s’ins ancien a l’agen REST els compo amen s de comunicació amb el sis ema pe a esold e les pe icion ebudes i el de eb e pe pa del sis ema la in o mació necessà ia pe a de e mina una sol·lici ud com inali zada i en ia -la al se ei Res ul. També s’iniciali za el se ei web pe a que comence a eb e pe icions ex e nes(Fig. 16). Amb els dos sis emes iniciali za s, el sis ema emisso comença execu an el seu agen que ol eali za una pe ició a l’al a pla a o ma. Pe a eali za -ho, en ia un missa ge a l’agen REST pe a que ho aça(Fig. 17). 56 Fig. 15. Llib e ies i a iables globals del sis ema ecep o impo ime impo spade om lask impo Flask, abo spadeHos = "" imeou = 5 app = Flask(__name__) Fig. 16. Iniciali zació del sis ema ecep o spadeHos = "127.0.0.1" a = MyAgen 2("agen 2@"+spadeHos , "sec e ") es = es Agen 2(" es 2@"+spadeHos , "sec e ") acl = spade.Beha iou .ACLTempla e() acl .se Pe o ma i e("comple e") = spade.Beha iou .MessageTempla e(acl ) es .addBeha iou (pe i ionComple ed(), ) es .addBeha iou (Res Beha iou , None) a.s a () es .s a () app. un(hos = "192.168.1.19", po = "5000") Pa in d’aques missa ge, l’agen REST ac i a el seu compo amen de eali za sol·lici uds(Fig. 18). Aques compo amen in en a à eali za una pe ició u ili zan la llib e ia Reques s amb la di ecció web on es oba el sis ema mul i-agen ex e n i decla an un emps lími d’espe a. Si el sis ema ex e n espon, s’emmaga zema el con ingu de la espos a en una a iable decla ada al p incipi del compo amen . En el cas de que es p oduïsca algun p oblema en la pe ició, es gua da un a is d’e o en la a iable mencionada abans. Una egada eali zada la sol·lici ud, es e o na a l’agen que ha demana e una pe ició un missa ge amb el con ingu ob ingu . Quan es eali za la pe ició, el sis ema ecep o ac i a aquella unció implemen ada en el se ei web de Flask que accep a la URI eali zada pe l’emisso (Fig. 19). El mè ode que s’ac i a a egeix una no a pe ició a la llis a p òpia de sol·lici uds de l’agen REST del sis ema i comença a espe a a que el sis ema ob inga la in o mació necessà ia pe a e o na -la a l’emisso . Si s’aconsegueix ob ind e aques a in o mació abans de que s’acabe el emps d’espe a, el se ei Res ul e o na la in o mació i elimina la sol·lici ud comple ada de la llis a de pe icions de l’agen REST. En el cas de que es supe e el 57 Fig. 17. Compo amen pe a demana eali za una pe ició ex e na class MyBeha (spade.Beha iou .OneSho Beha iou ): de _p ocess(sel ): msg = spade.ACLMessage.ACLMessage() msg.se Pe o ma i e(" eques ") msg.addRecei e (spade.AID.aid(" es @"+spadeHos , ["xmpp:// es @"+spadeHos ])) sel .myAgen .send(msg) Fig. 18. Compo amen pe a eali za sol·lici uds ex e nes class makeReques (spade.Beha iou .Beha iou ): de _p ocess(sel ): msg = sel ._ ecei e(block=T ue) esul = "" y: = eques s.ge ('h p://192.168.1.19:5000/', imeou = 5) esul = . ex excep eques s.excep ions.Timeou : esul = "ERROR 408: imeou excep ion" excep eques s.excep ions.Reques Excep ion: esul = "ERROR 404: eques e used" msg2 = spade.ACLMessage.ACLMessage() msg2.se Pe o ma i e("agen ") msg2.addRecei e (spade.AID.aid("agen @"+spadeHos , ["xmpp://agen @"+spadeHos ])) msg2.se Con en ( esul ) sel .myAgen .send(msg2) Pla a o ma pe a la in e ope abili a de sis emes mul i-agen espe a un emps a que els agen s locals puguen ob ind e la empe a u a i en ia -la a aques compo amen . Una egada haja inali za el emps d’espe a del compo amen Time-Ou , l’agen ep esen an de la ciu a no accep a més empe a u es, de mane a que ob é la mi jana de les que ha pogu eb e i ho en ia a l’agen REST. Respec e a la implemen ació de l’agen local, només s’enca ega d’ob ind e la empe a u a de la zona que li ha oca i la con e eix, si es necessa i, a g aus Kel in o Fah enhei seguin les o mules de con e sió o icials5, pe a desp és en ia -la a l’agen ep esen an de la ciu a . L’o gani zació del sis ema de ciu a és el que es mos a en la següen ima ge(Fig. 29): El sis ema d’au onomia s’execu a ambé pa in de les pe icions que ep l'agen REST, de mane a que espon di ec amen si es ac a de l’ob enció dels se eis o sol·lici uds accep ables pel sis ema. En el cas d’al es possibles pe icions, l’agen REST eali za les accions necessà ies pe a comunica l’o d e a eali za al ep esen an de l’au onomia. El ep esen an del sis ema d’au onomia, quan ep la pe ició de l’agen REST, demana als di e en s ep esen an s de les ciu a s l’ob enció de la mi jana de empe a u es en el ipus de g aus que s’hagen sol·lici a pe pa de l’agen REST, de mane a que es segueix el ma eix mè ode de ecepció d’in o mació dels di e en s agen s com en el del 5 Measu e Con e e . Tempe a u e con e sion able and con e e . h p://www.allmeasu es.com/ empe a u e.h ml 64 Fig. 29. O gani zació del sis ema de ciu a sis ema de ciu a , quan es necessi a eb e la empe a u a dels di e en s agen s locals. Una egada ob inguda les di e en s empe a u es dels missa ges amb dades àlides, l’agen ep esen an de l’au onomia eali za la mi jana de les empe a u es i ho en ia a l’agen REST pe a e o na -ho a qui ho ha demana . L’agen ep esen an de la ciu a dins del sis ema d’au onomia s’enca ega de comunica -se amb l’agen REST pe a eali za una sol·lici ud al seu sis ema de ciu a , amb l’objec iu d’ob ind e la mi jana de empe a u es de la ciu a i en la con e sió que li hagen demana . El esul a e o na pe el sis ema ex e n s’en ia a l’agen ep esen an de l’au onomia. Cal ind e en comp e que el compo amen de l’agen REST pe a eali za pe icions es c ea com una ins ància de compo amen di e en pe a cada ep esen an de ciu a , al com s’ha ia menciona en apa a s an e io s, pe a pa al·leli za asques a eali za dins del sis ema. L’o gani zació d’aques sis ema és el que es mos a a con inuació(Fig. 30): Finalmen , el sis ema de país s’implemen a pe a que comence amb l’agen ep esen an de país eben pe pa de l’usua i la pe ició que es ol eali za . Si la sol·lici ud que demana l’usua i no exis eix en el sis ema dis ibuï o é e o s de sin axi, el ep esen an del país li espon in o man que no exis eix la pe ició que ol eali za . En el cas con a i, l’agen s’enca ega d’en ia als ep esen an s de les di e en s au onomies la sol·lici ud que han de eali za , de mane a que en ien el seu esul a a 65 Fig. 30. Rep esen ació del sis ema d'au onomia Pla a o ma pe a la in e ope abili a de sis emes mul i-agen un compo amen del ep esen an del sis ema del ipus Time-Ou , de la ma eixa o ma que s’ha implemen a en els al es sis emes. Quan haja passa el emps lími , l’agen ep esen an de país eali za la mi jana i la mos a a l’usua i. Cadascun dels ep esen an s d’au onomia que o men el sis ema de país s’enca eguen, quan li ho sol·lici en, de c ea una ins ància del compo amen de eali za pe icions de l’agen REST, pe a comunica -se amb els seus espec ius sis emes d’au onomia i ob ind e les empe a u es demanades. Una egada eali zada la pe ició, l’agen REST en ia el esul a al ep esen an d’au onomia que ho haja demana , pe a e o na -lo a l’agen ep esen an del país. En el sis ema de país, l’agen REST es à modi ica només pe a eali za pe icions, que ullguen eali za els di e en s ep esen an s d’au onomia, al com s’ha explica an e io men . A con inuació es mos a l’o gani zació del sis ema de país(Fig. 31). Les APIs de REST implemen ades en cada agen REST dels sis emes pe me en sepa a el se ido del clien mi jança una in e ície uni o me, de mane a que no exis eixen dependències en e dos sis emes i es poden modi ica de mane a independen . La pa que ep les sol·lici uds no necessi a emmaga zema in o mació de la comunicació, i alguns sis emes eali zen pe icions a al es se eis com si es ac essin d’in e media is. Pa in de les ca ac e ís iques mencionades an e io men , 66 Fig. 31. O gani zació del sis ema de país els agen s REST implemen a s u ili zen se eis que es poden denomina amb a qui ec u a Res ul. Dins d’aques sis ema dis ibuï en capes, cal ind e en comp e que els emps d’espe a que hi han dins de cada sis ema mul i-agen , an dels compo amen s del ipus Time- Ou , de les pe icions que es eali zen a sis emes ex e ns i de les sol·lici uds que s’in en en esold e dins d’un sis ema, han de se supe io als dels sis emes si ua s en la capa in e io . També cal ind e en comp e quan han de du a els di e en s emps d’espe a dins d’un sis ema mul i-agen . Les següen s no mes s’han de compli pe a que uncione de mane a co ec a el sis ema dis ibuï implemen a : •El emps d’espe a de la esolució i espos a d’una pe ició dins d’un sis ema ha de se supe io al del emps necessa i que necessi a el compo amen de l’agen ep esen an del ma eix sis ema, que ep la in o mació dels di e en s agen s ep esen an s de la capa in e io . •Al ma eix emps, el emps d’espe a del compo amen , menciona en la no ma an e io , ha de se supe io al emps necessa i pe a que l’agen REST man inga la connexió ex e na amb al es sis emes d’un o d e je à quic in e io . •El emps d’espe a que man é la comunicació en e l’agen REST amb un sis ema de la capa in e io ha de se supe io al emps que eque eix el sis ema de la capa in e io pe a in en a esold e i een ia la espos a que li sol·lici en. 4.1.3 Validació Pe a alida el uncionamen del modul REST en aques sis ema dis ibuï , s’ha u ili za una mè ica que elaciona la quan i a d’agen s locals que aconsegueixen eali za l’en iamen de la empe a u a ob inguda a l’agen ep esen an de la ciu a , sense impo a el e de que eque isca o no con e i -la a una al a uni a de empe a u a, amb el núme o d’agen s locals que o men en o al una, dos o es ciu a s di e en s. Amb aques a mè ica s’in en a demos a que la dis ibució d’agen s en di e ses pla a o mes pe me una millo a en l’e iciència i escalabili a e e en a la eali zació de comunicacions dins d’un sis ema de la pla a o ma SPADE. Pe a aplica aques a mè ica, els sis emes dis ibuï s u ili za s es componen d’un sis ema de país, un sis ema d’au onomia i di e sos sis emes de ciu a . Cadascun dels sis emes u ili za s s’execu en en màquines ísiques di e en s, excep e en el cas dels sis emes de ciu a que s’execu en en di e en s màquines i uals mi jança Vi ualBox6. 6 O acle. O acle VM Vi ualBox. h ps://www. i ualbox.o g/ 67 Pla a o ma pe a la in e ope abili a de sis emes mul i-agen L’o dinado que s’enca ega d’execu a el sis ema de país con é les següen s ca ac e ís iques p incipals, que a ec en més en el endimen de l’execució: Mic op ocessado : In el Co e Duo Quad Q6600. 4 nuclis ísics amb 2.4 GHz de eloci a de còmpu . Memò ia RAM: 4 GB de capaci a de ipus DDR2 amb 800 MHz de eloci a de còmpu . Sis ema ope a iu: Ubun u Gnome Desk op 16.04 de 64 bi s. La màquina ísica que execu a el sis ema d’au onomia u ili za els componen s que es mos en a con inuació: Mic op ocessado : In el Co e i7-2670M. 4 nuclis ísics, que poden simula 8 nuclis, amb 2.2 GHz de eloci a de còmpu , que po augmen a ins a 3.1 GHz. Memò ia RAM: 6 GB de capaci a de ipus DDR3 amb 1333 MHz de eloci a de còmpu . Sis ema ope a iu: Ubun u Desk op 16.04 de 64 bi s. Respec e a les màquines i uals, les es que es olen u ili za s’u ili zen en l’ul im o dinado menciona , pe a pode execu a els di e en s sis emes de ciu a , amb les següen s p opie a s: Mic op ocessado : In el Co e i7-2670M. 1 nucli amb 2.2 GHz de eloci a de còmpu , que po augmen a ins a 3.1 GHz. Memò ia RAM: 1024 MB de capaci a de ipus DDR3 amb 1333 MHz de eloci a de còmpu . Sis ema ope a iu: Ubun u Gnome Desk op 16.04 de 64 bi s. La mè ica s’ha eali za execu an una egada cada pa del sis ema dis ibuï pe a cada quan i a di e en d’agen s locals, excep e la pa del sis ema e e en al país, que s’execu a 10 egades pe a eali za di e ses egades la pe ició d’ob ind e la mi jana de empe a u es de l'únic sis ema d’au onomia, que al ma eix emps ho sol·lici a als sis emes de ciu a . Pa in de les 10 p o es eali zades amb di e en s quan i a s d’agen s locals dis ibuï s en els di e sos sis emes de ciu a , s’ob é la mi jana de espos es ebudes co ec amen pe pa de cada ciu a . En les següen s aules es mos en els esul a s ob ingu s amb 10, 20, 30, 40 i 50 agen s locals dis ibuï s en una, dos i es ciu a s. El e de e p o es ins a 50 agen s es degu a que un sòl sis ema 68 comença a ind e p oblemes pe a pode iniciali za i egis a en la pla a o ma o a aques a quan i a d’agen s. Núme o de p o a Respos es d’agen s ebu s 1 Ciu a 2 Ciu a s 3 Ciu a s Ciu a 1 Ciu a 2 To al Ciu a 1 Ciu a 2 Ciu a 3 To al 1 10 5 5 10 3 3 4 10 2 10 5 5 10 3 3 4 10 3 10 5 5 10 3 3 4 10 4 10 5 5 10 3 3 4 10 5 10 5 5 10 3 3 4 10 6 10 5 5 10 3 3 4 10 7 10 5 5 10 3 3 4 10 8 10 5 5 10 3 3 4 10 9 10 5 5 10 3 3 4 10 10 10 5 5 10 3 3 4 10 Mi jana 10 5 5 10 3 3 4 10 Fig. 32. Resul a s ob ingu s amb 10 agen s locals Pa in dels esul a s d’aques cas(Fig. 32), o s els agen s locals en els di e en s casos eali zen la espos a al ep esen an de la seua ciu a de mane a co ec a. Cal ind e en comp e que en el cas d’u ili za es ciu a s no s’ha pogu epa i equi a i amen els 10 agen s locals, pe aons ob ies espec e a la di isibili a dels agen s. 69 Pla a o ma pe a la in e ope abili a de sis emes mul i-agen Núme o de p o a Respos es d’agen s ebu s 1 Ciu a 2 Ciu a s 3 Ciu a s Ciu a 1 Ciu a 2 To al Ciu a 1 Ciu a 2 Ciu a 3 To al 1 20 10 10 20 7 7 6 20 2 19 10 10 20 7 7 6 20 3 13 10 10 20 7 7 6 20 4 19 10 10 20 7 7 6 20 5 19 10 10 20 7 7 6 20 6 20 10 10 20 7 7 6 20 7 20 10 10 20 7 7 6 20 8 20 10 10 20 7 7 6 20 9 13 10 10 20 7 7 6 20 10 19 10 10 20 7 7 6 20 Mi jana 18,2 10 10 20 7 7 6 20 Fig. 33. Resul a s ob ingu s amb 20 agen s locals A pa i de 20 agen s locals(Fig. 33), la dis ibució en una única ciu a comença a pe d e missa ges de les di e en s empe a u es ob ingudes, men es que amb les dis ibucions de dos i es ciu a s enca a es eben co ec amen o s els missa ges. En aques cas ambé so geix el ma eix p oblema d'equi a i i a en la dis ibució dels agen s locals en e es ciu a s. 70 Núme o de p o a Respos es d’agen s ebu s 1 Ciu a 2 Ciu a s 3 Ciu a s Ciu a 1 Ciu a 2 To al Ciu a 1 Ciu a 2 Ciu a 3 To al 1 13 15 15 30 10 10 10 30 2 28 15 14 29 10 10 10 30 3 29 15 15 30 10 10 10 30 4 29 15 15 30 10 10 10 30 5 15 15 15 30 10 10 10 30 6 29 14 15 29 10 10 10 30 7 30 15 15 30 10 10 10 30 8 16 14 15 29 10 10 10 30 9 30 15 15 30 10 10 10 30 10 29 11 14 25 10 10 10 30 Mi jana 24,8 14,4 14,8 29,2 10 10 10 30 Fig. 34. Resul a s ob ingu s amb 30 agen s locals Tal com es mos a en la aula(Fig. 34), amb una ciu a es comença a pe d e almenys 5 de cada 30 missa ges, men es que amb dos ciu a s es endeix a pe d e casi un missa ge que s’ha en ia inco ec amen o que l’agen local no ha pogu eali za . Pe al cas de la u ili zació dis ibuïda de es ciu a s enca a es eben co ec amen o s els missa ges. 71 Pla a o ma pe a la in e ope abili a de sis emes mul i-agen Núme o de p o a Respos es d’agen s ebu s 1 Ciu a 2 Ciu a s 3 Ciu a s Ciu a 1 Ciu a 2 To al Ciu a 1 Ciu a 2 Ciu a 3 To al 1 40 20 20 40 13 13 14 40 2 39 19 20 39 13 13 14 40 3 40 20 11 31 13 13 14 40 4 39 16 20 36 13 13 13 39 5 39 16 20 36 13 13 13 39 6 39 20 19 39 13 13 14 40 7 34 19 19 38 13 13 14 40 8 38 20 17 37 12 13 14 39 9 25 14 20 34 12 13 13 38 10 22 19 20 39 12 12 14 38 Mi jana 35,5 18,3 18,6 36,9 12,7 12,9 13,7 39,3 Fig. 35. Resul a s ob ingu s amb 40 agen s locals En aques cas(Fig. 35) qualse ol de les dis ibucions ja no aconsegueix que els seus agen s locals aconseguisquen eali za les seues úniques asques co ec amen , on la dis ibució amb una ciu a aconsegueix eb e co ec amen ins a 35.5 missa ges de 40, men es que amb dos sis emes de ciu a s’a iba a eb e ins a 36.9 i amb es ciu a s es man é pe damun dels al es amb 39.3 missa ges de mi jana ebu s co ec amen . 72 Núme o de p o a Respos es d’agen s ebu s 1 Ciu a 2 Ciu a s 3 Ciu a s Ciu a 1 Ciu a 2 To al Ciu a 1 Ciu a 2 Ciu a 3 To al 1 39 25 25 50 17 17 16 50 2 37 24 24 48 14 17 13 44 3 36 25 24 49 17 17 16 50 4 49 25 22 47 17 16 15 48 5 48 20 22 42 16 17 15 48 6 42 24 24 48 16 16 15 47 7 33 25 25 50 17 17 16 50 8 49 24 24 48 16 17 16 49 9 49 24 25 49 17 17 16 50 10 50 25 25 50 16 16 16 48 Mi jana 43,2 24,1 24 48,1 16,3 16,7 15,4 48,4 Fig. 36. Resul a s ob ingu s amb 50 agen s locals Finalmen , amb 50 agen s locals(Fig. 36) els esul a s ja no són p ou es ables, sob e o pe a la dis ibució d’una ciu a , on es mos a que es pe den casi ins a 7 missa ges d’agen s locals. En les dis ibucions de dos i es ciu a s es endeix a pe d e ins a 2 missa ges, enca a que només es di e encien pe es dècimes. Pa in d’aques s esul a s, es mos a a con inuació una aula que esumeix els esul a s an e io s(Fig. 37), segui d’una g à ica pe pode isuali za les di e encies ob ingudes amb les di e en s dis ibucions. 73 Pla a o ma pe a la in e ope abili a de sis emes mul i-agen Respec e a al es de alls, cada hospi al é una llis a dels hospi als que es oben en la ma eixa ciu a , amb la seua ad eça pe pode comunica -se. També con enen l’ad eça web del sis ema de la egió en la que es oba pe a in e ac ua amb el sis ema coo dinado de la egió. En quan a les ep esen acions del pacien s i els ò gans, consis eixen en dicciona is, on en el cas dels pacien s es de ineixen les ca ac e ís iques de la seua iden i a , que és única, el seu es a , l’ò gan que es à espe an a eb e i l’hospi al on es oba en e mol es al es. En el cas de l’ò gan, es de ineix el seu ipus i l’es a en el que es oba. L’agen REST d’un sis ema d’hospi al s’enca ega de eb e les pe icions, que ob é an del sis ema que ep esen a la egió com d’al es hospi als de la ciu a , elacionades amb e o na la llis a de pacien s ecep o s compa ibles amb l’ò gan disponible que li desc iuen i la con i mació de si es ol eali za el asplan d’ò gan al pacien escolli en eixe hospi al. En la següen aula(Fig. 40) es mos en les di e en s URIs que accep a un hospi al, amb el seu ipus, la in o mació eque ida i una b eu desc ipció de la seua u ili a . Cal a isa que s’ome en aquelles que an e e ència a l’ob enció de se eis del sis ema i la llis a de possibles pe icions que po accep a , ja que s’han desc i en l’apa a an e io i se suposa que ho enen implemen a pe de ec e qualse ol sis ema. URI Tipus In o mació eque ida Desc ipció /pa ien s GET Ca ac e ís iques de l’ò gan Re o na la llis a de ecep o s compa ibles amb l’ò gan desc i . /con i ma ion GET Ca ac e ís iques del pacien Re o na una espos a espec e a la eali zació del asplan al pacien desc i . Fig. 40. Llis a de pe icions que es poden eali za a un hospi al En quan a les sol·lici uds que es poden eali za al sis ema de la egió o als hospi als p ope s es an les de demana una llis a dels pacien s compa ibles amb l’ò gan que é l’hospi al disponible an a l’agen coo dinado d’eme gència com als di e en s ni ells del sis ema dis ibuï , a egi in o mació a l’agen his ò ic, ac uali za la llis a de pacien s de l’agen coo dinado d’eme gència i ob ind e la con i mació de l’hospi al on es oba el pacien ecep o que s’ha escolli pe a eali za el asplan . En la aula que e a con inuació(Fig. 41) s’expliquen les di e en s pe icions que es poden eali za a sis emes ex e ns, amb el seu ecep o , ipus de sol·lici ud, les dades addicionals a en ia i una desc ipció del que es demana. En aques cas s’u ili zen URIs dinàmiques, on es po especi ica el nom de l’hospi al que eali za la pe ició, pe a que el sis ema ex e n inga in o mació sob e quin hospi al li ho ha demana . En aques cas ambé s’ome les sol·lici uds que es poden eali za pe de ec e en qualse ol sis ema. 80 Pe ició Tipus Sis ema ecep o Dades addicional Desc ipció / <hospi al>/0Em e gency GET Regió Ca ac e ís iques de l’ò gan Demana la llis a de pacien s en es a c í ic compa ibles amb l’ò gan. /pa ien s GET Hospi al Ca ac e ís iques de l’ò gan Demana la llis a de pacien s compa ibles amb l’ò gan a un hospi al de la ma eixa ciu a . / <hospi al>/ egio n GET Regió Ca ac e ís iques de l’ò gan Demana la llis a de pacien s compa ibles amb l’ò gan d’hospi als de la ma eixa egió. / <hospi al>/zone GET Regió Ca ac e ís iques de l’ò gan Demana la llis a de pacien s compa ibles amb l’ò gan d’hospi als de di e en s egions. / <hospi al>/coun y GET Regió Ca ac e ís iques de l’ò gan Demana la llis a de pacien s compa ibles amb l’ò gan d’hospi als de di e en s zones. / <hospi al>/hAg en PUT Regió Ca ac e ís iques de l’ò gan i del pacien Demana a egi dades no es a l’agen his ò ic. 81 Pla a o ma pe a la in e ope abili a de sis emes mul i-agen / <hospi al>/ecAg en POST Regió Ca ac e ís iques del pacien Demana a egi un pacien c i ic a la llis a de pacien s de l’agen coo dinado d’eme gència. /con i ma ion GET Hospi al Ca ac e ís iques del pacien Demana la con i mació a un hospi al de la ma eixa ciu a pe a eali za el asplan al seu pacien . / <hospi al>/ egio n/con i ma ion GET Regió Ca ac e ís iques del pacien Demana la con i mació a un hospi al de o a la ciu a pe a eali za el asplan al seu pacien . / 0Eme gency/co n i ma ion GET Regió Ca ac e ís iques del pacien Demana la con i mació a l’hospi al, on es oba el pacien ob ingu pe l’agen coo dinado d’eme gència. Fig. 41. Sol·lici uds que es poden eali za des d'un hospi al Pe a que es comuniquen els agen s d’aques ipus de sis ema, s’han implemen a di e sos mè odes de compo amen pe a cadascun del agen s, que s’ac i en quan eben un missa ge d’un agen amb un ipus de con ingu de e mina . La ep esen ació d’un sis ema mul i-agen d’hospi al es po mos a en la següen ima ge(Fig. 42), on es ep esen en els di e sos agen s del sis ema i els enllaços de comunicació que es poden eali za en e ells ma eixos i amb sis emes ex e ns: 82 El sis ema que ep esen a les dis in es egions del país es compon pe dos ipus d’agen s, que són els següen s: Agen coo dinado de la egió. És l’agen que s’enca ega de la coo dinació dels di e en s hospi als que ep esen a i in e ac ua amb la es a d’agen s del sis ema pe a pode comunica -se amb els hospi als i amb el sis ema que ep esen a la zona en la que es oba. En el sis ema de la egió només po ha e -ne un d’aques ipus. Es comunica amb l’agen REST pe a eali za pe icions al sis ema de la zona en la que es oba i pe eb e sol·lici uds del ma eix. Agen ep esen an d’hospi al. Aques ipus d’agen s’enca ega de les comunicacions en e el sis ema d’hospi al, al que ep esen a en la egió, i l’agen coo dinado de la egió. Les comunicacions que eali za amb l’agen REST consis eixen en eali za sol·lici uds al seu hospi al i eb e d’al es del ma eix pe a in o ma -ho al coo dinado de la egió. En aques sis ema, l’agen REST es comunica amb o s els agen s que o men el sis ema de la egió, de mane a que pe pa del coo dinado de egió hau à d’in o ma - lo de les pe icions i espos es que elacionen al sis ema que ep esen a la zona en la que es si ua, i que pe pa dels di e en s ep esen an s necessi a à in o ma a cadascun d’ells de les sol·lici uds eali zades i les espos es dels di e en s hospi als de 83 Fig. 42. Rep esen ació del sis ema mul i-agen d'hospi al Pla a o ma pe a la in e ope abili a de sis emes mul i-agen la egió. A con inuació es ep esen a en una aula les possibles pe icions que es poden accep a en el sis ema de egió(Fig. 43): 84 URI Tipus In o mació eque ida Desc ipció /<hospi al>/<le el> GET Ca ac e ís iques de l’ò gan Re o na la llis a de ecep o s compa ibles amb l’ò gan desc i depenen del ni ell al que es ol eali za la pe ició. /<hospi al>/hAgen PUT Ca ac e ís iques de l’ò gan i del pacien Re o na la possible espos a pe pa de l’agen his ò ic. /<hospi al>/ecAgen POST Ca ac e ís iques del pacien Re o na la possible espos a pe pa de l’agen coo dinado d’eme gència. / <hospi al>/ egion/co n i ma ion GET Ca ac e ís iques del pacien Re o na una espos a espec e a la eali zació del asplan al pacien desc i d’un hospi al del país /pa ien s GET Ca ac e ís iques de l’ò gan Re o na la llis a de ecep o s compa ibles amb l’ò gan desc i . /con i ma ion GET Ca ac e ís iques del pacien Re o na una espos a espec e a la eali zació del asplan al pacien desc i d’un hospi al de la egió. / 0Eme gency/con i ma ion GET Ca ac e ís iques del pacien Re o na la espos a d’un hospi al espec e a la eali zació del asplan a un pacien , que es oba en la llis a de pacien s c í ics. Fig. 43. Sol·lici uds que es poden eali za al sis ema de egió 85 Pla a o ma pe a la in e ope abili a de sis emes mul i-agen Com s’ha is en la aula, exis eix el cas d’una URI dinàmica amb dos a iables, que ep esen en l’hospi al que eali za la sol·lici ud i el ni ell amb el que s’a isa si cal ce ca pacien s en la ma eixa egió, en di e en s egions, en al es zones o di ec amen de la llis a dels casos d’eme gència 0. Pa in de la ep esen ació de l’hospi al, la egió po sabe a quin hospi al no cal demana la llis a de pacien s ecep o s compa ibles, incloen a aquelles que es oben en la ma eixa ciu a . També cal des aca que exis eixen pe icions mol pa egudes, amb la di e ència de que cadascuna d’elles les eali za un hospi al de la egió o el sis ema de la zona, an pe a ob ind e in o mació sob e pacien s compa ibles com pe a edi igi la con i mació de la eali zació d’un asplan a un pacien . Les sol·lici uds que po eali za un sis ema de egió, on la majo ia consis eixen en edi igi pe icions eali zades des d’un ni ell a un al e, són les que es isuali zen en la aula que hi ha a con inuació(Fig. 44): 86 Pe ició Tipus Sis ema ecep o Dades addicional Desc ipció / < egion>/0Eme gency GET Zona Ca ac e ís iques de l’ò gan Demana la llis a de pacien s en es a c í ic compa ibles amb l’ò gan. /pa ien s GET Hospi al Ca ac e ís iques de l’ò gan Demana la llis a de pacien s compa ibles amb l’ò gan a un hospi al de la ma eixa egió. /< egion>/zone GET Zona Ca ac e ís iques de l’ò gan Demana la llis a de pacien s compa ibles amb l’ò gan d’hospi als de di e en s egions. / < egion>/coun y GET Zona Ca ac e ís iques de l’ò gan Demana la llis a de pacien s compa ibles amb l’ò gan d’hospi als de di e en s zones. / < egion>/hAgen PUT Zona Ca ac e ís iques de l’ò gan i del pacien Demana a egi dades no es a l’agen his ò ic. / < egion>/ecAge n POST Zona Ca ac e ís iques del pacien Demana a egi un pacien c i ic a la llis a de pacien s de l’agen coo dinado d’eme gència. 87 Pla a o ma pe a la in e ope abili a de sis emes mul i-agen /con i ma ion GET Hospi al Ca ac e ís iques del pacien Demana la con i mació a un hospi al de la egió pe a eali za el asplan amen a un pacien . / < egion>/zone/c on i ma ion GET Zona Ca ac e ís iques del pacien Demana la con i mació a un hospi al de o a la egió pe a eali za el asplan amen a un pacien . / 0Eme gency/co n i ma ion GET Zona Ca ac e ís iques del pacien Demana la con i mació a l’hospi al, on es oba el pacien ob ingu de l’agen coo dinado d’eme gència. Fig. 44. Llis a de sol·lici uds que es poden eali za des d'un sis ema de egió A pa , en el sis ema que ep esen a a una egió exis eix una base de dades on s’emmaga zema la llis a dels di e en s hospi als amb els que es coo dina, jun amb la seua llis a de pacien s en la espe a d’un ò gan a asplan a , ob ingudes mi jança les pe icions que eali zen els hospi als, pe a acili a la ce ca de l’hospi al al que cal in o ma de la con i mació, que po demana un al e pe a eali za o no el asplan . Aques a base de dades es a ac uali zan cada egada que es eali za la ce ca dels di e en s llis a s de pacien s de cada hospi al. Pe a la coo dinació en e l’agen coo dinado del sis ema de egió i els ep esen an s de cada hospi al, s’ha u ili za el ma eix p o ocol de comunicació que s’ha ia implemen a en el sis ema dis ibuï de l’apa a an e io , on s’u ili za un compo amen del ipus Time-Ou pe a espe a du an un emps de e mina en eb e o es les possibles espos es dels agen s ep esen an s que hi ha en el sis ema. Respec e a la es a de comunicació, s’ha u ili za el ma eix mè ode que en el sis ema d’hospi al, que es igual als dels exemples que s’han mos a an e io men . En la següen ima ge(Fig. 45) es mos a com s’o gani za un sis ema mul i-agen d’aques ipus: 88 A pa i d’aques momen , els sis emes que ep esen en les zones i el coo dinado nacional s’implemen en d’una mane a mol pa eguda al del sis ema de ipus egió, an en la composició del sis ema mul i-agen com en les sol·lici uds que poden eali za i eb e, amb unes quan es di e ències que s’explica an més enda an en l’explicació de cadascun d’ells. Els agen s que o men el sis ema de ipus zona són dels següen s ipus: Agen coo dinado de zona. S’enca ega de la coo dinació amb les seues egions, mi jança les comunicacions que eali za amb cadascun dels seus ep esen an s si ua s en el ma eix sis ema. Es comunica amb l’agen REST pe a con ac a amb el sis ema de coo dinació nacional. En el sis ema només po exis i un coo dinado d’aques ipus. Agen ep esen an de egió. És el ipus d’agen que ep esen a a cadascuna de les egions que o men la zona. T ac a de comunica -se amb el coo dinado de la zona pe a eb e o d es de pe icions a eali za a la seua egió i pe a no i ica -li de les espos es o sol·lici uds ob ingudes. Amb l’agen REST ac a de eali za aques es pe icions o denades pel coo dinado o de eb e in o mació de la seua egió. En el sis ema ambé exis eix una base de dades, con olada pel coo dinado del sis ema, on es gua da la llis a de les di e en s egions de la zona, amb els seus 89 Fig. 45. O gani zació del sis ema del ipus egió Pla a o ma pe a la in e ope abili a de sis emes mul i-agen Agen his ò ic. És el que s’enca ega de eb e in o mació de o s els asplan amen s que s’hagen eali za en Espanya. També es comunica amb els agen s ep esen an s, pe a ac uali za la seua base de dades de asplan amen s eali za s amb èxi . La base de dades que u ili za l’agen coo dinado d’eme gència es à o mada pe una llis a de pacien s amb les dades necessà ies pe a conéixe pe exemple l’ò gan que necessi a o l’hospi al on es oba amb la seua ad eça web pe a que es puga comunica di ec amen amb l’hospi al si el pacien s’escollix pe a eali za el asplan . Respec e a la base de dades de l’agen his ò ic, es compon d’una llis a amb els di e en s casos dels asplan amen s d’ò gan eali za en el país, de allan la in o mació del pacien ecep o , l’ò gan donan i els hospi als que s’han enca ega del asplan , an del anspo de l’ò gan com de l’equip qui ú gic. També exis eix una e ce a base de dades, on s’emmaga zema la llis a de les zones o denades que componen el país, on l’o d e u ili za , que ambé es à es able pe la ONT, si ua al inal de la llis a aquella zona on s’haja eali za el asplan d’un ò gan, que p o é d’un hospi al que es oba en una zona dis in a. Al igual que en el ni ell de zona, aques a llis a pe me e o na a l’hospi al que ho demana el conjun de pacien s ecep o s compa ibles seguin un o d e. L’agen REST en aques ipus de sis ema només necessi a comunica -se amb els ep esen an s de cada zona, ja que les úniques comunicacions que es poden eali za an e e ència als sis emes del ni ell in e io . Pe al sis ema de coo dinació nacional només s’accep en les següen s pe icions(Fig. 49): 96 URI Tipus In o mació eque ida Desc ipció /<zone>/<le el> GET Ca ac e ís iques de l’ò gan Re o na la llis a de ecep o s compa ibles amb l’ò gan desc i depenen del ni ell al que es ol eali za la pe ició. /<zone>/hAgen PUT Ca ac e ís iques de l’ò gan i del pacien Re o na la possible espos a pe pa de l’agen his ò ic. /<zone>/ecAgen POST Ca ac e ís iques del pacien Re o na la possible espos a pe pa de l’agen coo dinado d’eme gència. / <zone>/coun y/con i ma ion GET Ca ac e ís iques del pacien Re o na una espos a espec e a la eali zació del asplan al pacien desc i d’un hospi al del país. / 0Eme gency/con i ma ion GET Ca ac e ís iques del pacien Re o na la espos a d’un hospi al espec e a la eali zació del asplan a un pacien seu, que es oba en la llis a de pacien s c í ics. Fig. 49. Llis a de pe icions que adme el sis ema de coo dinació nacional En aques ni ell, el sis ema po e o na la llis a de possibles ecep o s an de la base de dades de l’agen coo dinado d’eme gència com de la es a de zones a les que ho ha demana . A pa d’ac uali za les bases de dades dels di e en s agen s, ambé pe me e o na la espos a e a pe aquell hospi al que con é un ecep o , al que s’ha accep a pe a eali za el asplan d’ò gan, de mane a que abans ha de een ia la pe ició a la zona on es oba aques hospi al. 97 Pla a o ma pe a la in e ope abili a de sis emes mul i-agen En quan a les sol·lici uds que es poden eali za des del coo dinado nacional, només an al a les que es mos en en la següen aula pe a edi igi pe icions a al es sis emes(Fig. 50): Pe ició Tipus Sis ema ecep o Dades addicional Desc ipció /pa ien s GET Zona Ca ac e ís iques de l’ò gan Demana la llis a de pacien s compa ibles amb l’ò gan d’hospi als de una zona. /con i ma ion GET Zona i Hospi al Ca ac e ís iques del pacien Demana la con i mació a un hospi al de una zona pe a eali za el asplan al pacien . Fig. 50. Sol·lici uds que po eali za el sis ema de coo dinació nacional Cadascuna d’aques es sol·lici uds es eali zen quan el sis ema ob é pe icions e e en s a l’ob enció del possibles ecep o s d’un ò gan i a la con i mació d’un asplan a la es a de zones, degu a que no s’han pogu esold e en les capes in e io s. Respec e a la implemen ació de la o ma en que es comuniquen els agen s d’aques sis ema, s’u ili zen els ma eixos mè odes que en els sis emes coo dinado s del ipus egió i zona. En la següen ima ge es mos a com s’o gani za aques sis ema mul i- agen (Fig. 51). Cal ind e en comp e que en aques ima ge s’ha eduï el núme o de ep esen an s de zones, degu a que pod ia di icul a l’en enimen de l’a qui ec u a. 98 Una egada explica com es an dissenya s cada ipus de sis ema mul i-agen que o men el sis ema dis ibuï , es con a à el p océs de coo dinació que es eali za en e els di e en s ni ells de la dis ibució pe a que un hospi al ac e de oba i con i ma el asplan d’un ò gan que enen disponible. El p ime pas consis eix en comp o a en cada hospi al si en la seua base de dades exis eix un ò gan disponible, on el me ge ho con i ma ac uali zan la base de dades d’ò gans i l’agen coo dinado de asplan amen s ho comp o a, demanan -ho a l’agen ep esen an de la base de dades. Si n’hi ha un ò gan disponible, l’agen coo dinado in e ac ua à amb l’agen REST pe a comunica -se amb l’agen coo dinado d’eme gència. Pe a comunica -se amb aques agen , l’hospi al eali za una pe ició al sis ema de la egió, que al ma eix emps ho in o ma al seu agen coo dinado pe a que een ie la sol·lici ud al sis ema de la zona, que eali za el ma eixos passos pe a eali za la pe ició al sis ema de coo dinació nacional. En aques sis ema, es comunica de l’a ís a l’agen coo dinado d’eme gència, que eali za à una llis a d’aquells pacien s de la seua base de dades que són compa ibles amb l’ò gan disponible. Una egada eali zada la llis a, el sis ema de coo dinació nacional e o na la espos a al sis ema de la zona, que a isa al seu coo dinado pe a e o na aques a in o mació al sis ema de la egió que ho ha ia demana , que al ma eix emps ho en ia a l’hospi al on enen l’ò gan. 99 Fig. 51. O gani zació del sis ema de coo dinació nacional Pla a o ma pe a la in e ope abili a de sis emes mul i-agen Una egada que l’hospi al inga la llis a de possibles ecep o s, l’agen coo dinado de asplan amen s aplica en ella el p océs SMART pe a decidi quin se à el p ime pacien al que s’ha de demana pe mís de eali za el asplan d’ò gan. Una egada decidi , es o na a in en a comunica -se amb l’agen coo dinado d’eme gència pe a pode in o ma de la decisió a l’hospi al on es oba el pacien , que desp és e o na la seua espos a a l’hospi al que ho demana. Si l’hospi al del pacien accep a la eali zació del asplan , el p océs de coo dinació inali za amb l’ac uali zació de la base de dades que manipula l’agen his ò ic, de mane a que s’en ia una pe ició al sis ema de coo dinació nacional pe a ac uali za -lo. En el cas de que l’al e hospi al es nega a eali za el asplan al seu pacien , l’agen coo dinado de asplan amen s epe eix el p océs de con i mació pe al següen pacien ecep o escolli de la llis a. Si la llis a es queda buida, sense ha e pogu oba cap pacien ecep o que hagen accep a en el seu hospi al pe a eali za el asplan , l’agen coo dinado de asplan amen consul a en la base de dades de pacien s del seu hospi al, pe a comp o a si exis eix algun ecep o compa ible amb l’ò gan. Si no s’han pogu oba ecep o s compa ibles o l’hospi al no accep a eali za els asplan amen s en aquells possibles pacien s, l’agen coo dinado in en a à demana els pacien s compa ibles dels hospi als de la ma eixa ciu a , els quals es poden comunica en e ells sense ha e d’in e ac ua amb el sis ema ep esen an de la egió. Una egada ob ingu els possibles ecep o s, es o na a aplica el p océs SMART, de mane a que es o na a in e ac ua amb els hospi als de la ciu a pe a ob ind e les seues con i macions. Si en els hospi als de la ma eixa ciu a ampoc es oba un pacien ecep o compa ible amb l’ò gan que accep en en el seu hospi al el asplan , l’agen coo dinado de l’hospi al ac a à de demana a la egió la llis a de pacien s. Quan l’agen coo dinado de la egió eba aques a sol·lici ud pe pa del seu ep esen an en el sis ema, que s’enca ega de eb e les pe icions que eali za el seu hospi al, demana à a la es a de ep esen an s que li donen la llis a de pacien s ecep o s compa ibles amb l’ò gan disponible, excep e aquells ep esen an s d’hospi als que es oben en la ma eixa ciu a d’aquella que ho ha sol·lici a . Una egada que el ep esen an de la egió ha ebu o es les llis es, les e o na a l’hospi al que ho demana a. Pa in d’aques s pacien s, l’agen coo dinado de l’hospi al in en a à comunica -se amb amb l’hospi al on es oba el pacien escolli pe a eali za el asplan , demanan -ho p ime al sis ema de la egió pe a que edi igisca la pe ició a l’hospi al. Al igual que en els an e io s casos, si ampoc accep en el asplan cap hospi al de la egió, alesho es es eali za la ce ca en les di e en s egions de la zona, on no es oba l’hospi al que ho demana. Pe a aques a ce ca, es eali za la sol·lici ud de ce ca al sis ema de la egió, que s’enca ega d’a isa a l’agen ep esen an de la egió pe a que edi igisca la pe ició al 100 sis ema de ipus zona. El ep esen an de la zona in en a à comunica -se amb els di e en s ep esen an s de les dis in es egions pe a que ob inguen la llis a de pacien s compa ibles, on al ma eix emps cada egió di e en eali za la ce ca en els seus hospi als. Una egada que el ep esen an de la zona ob inga les di e en s llis es de cada egió, o dena la llis a de pacien s segons l’hospi al, seguin el p o ocol es abli pe la ONT, i la e o na al sis ema de la egió, que al ma eix emps ho en ia a l’hospi al que ho demana a. Si d’aques a llis a no s’accep a ampoc cap pacien pe pa dels hospi als on es oben, l’hospi al eali za una ece ca en la es a d’hospi als als que enca a no s’han demana la seua consul a. Pe a aques a úl ima ce ca, l’agen coo dinado de asplan amen s eali za la sol·lici ud d’ob ind e els ecep o s possible de la es a del país al sis ema de coo dinació de nació, que abans s’ha de edi igi pels ni ells que hi han en e ells. Una egada que l’agen coo dinado del sis ema del ni ell nacional eba la pe ició, el ma eix agen demana a la es a d’agen s ep esen an s de zones que es comuniquen amb les seues zones pe a ob ind e els di e en s pacien s de cada hospi al compa ibles amb l’ò gan que es à disponible. Una egada que l’agen coo dinado ob inga les llis es de les dis in es zones, les o dena segons les zones i el p o ocol de la ONT, de mane a que ho e o na a la zona que ho demana a, que al ma eix emps ho e o na a la egió que ambé ho sol·lici a a, que ho e o na a l’hospi al que ha ia eali za la pe ició. Si pa in d’aques a llis a de possibles ecep o s no es con i ma cap eali zació de asplan , l’agen coo dinado de asplan amen in o ma a l’agen in e ície de que comunique a l’hospi al que no s’ha pogu oba cap pacien ecep o compa ible. El codi e e en al desen olupamen de cadascun dels sis emes mul i-agen d’aques sis ema dis ibuï es oba en un eposi o i public7. La implemen ació s’ha eali za amb algunes excepcions que no s’han pogu eali za com oca, de mane a que s’han simpli ica en el seu desen olupamen , com són els casos del p océs SMART en la selecció del possible pacien al que s’ha de eali za el asplan a d’ò gan o la o ma en la que ha de eb e les dades l’agen his ò ic. També s’ha desca a la implemen ació en el sis ema d’hospi al de l’agen aduc o d’on ologies. Aques agen se suposa que pe me adui la in o mació que es ep d’un hospi al ex e n a un llengua ge que es puga en end e en l’hospi al on es si ua, pe ò com que o s els sis emes d’hospi al que s’u ili zen gas en el ma eix llengua ge en la in o mació que en ien, sa desca a aques agen dins del sis ema. En aques sis ema dis ibuï , l’API web implemen ada en cada agen REST és semblan als que s’han u ili za en el sis ema dis ibuï de l’ob enció de la mi jana de empe a u es de di e en s zones, explica en l’apa a an e io . Les úniques di e ències 7 Gi Hub. SPADE-wi h-REST/hospi al_coo dina o /. h ps://gi hub.com/joasanm/SPADE-wi h- REST/ ee/mas e /hospi al_coo dina o 101 Pla a o ma pe a la in e ope abili a de sis emes mul i-agen que hi han són que cada pe ició s’en ia amb un conjun de dades i que alguns mè odes dels ecep o s de sol·lici uds pe me en emmaga zema aques es dades en les seues bases de dades. Enca a que exis eixin aques can is, les APIs c eades compleixen amb o es les es iccions, pe a que es puguen denomina del ipus Res ul. 4.2.3 Validació Respec e a les p o es eali zades, no s’ha pogu oba una mè ica pe a anali za el uncionamen el sis ema dis ibuï , enca a que s’ha pogu comp o a l’es abili a de les comunicacions en e di e ses combinacions de sis emes mul i-agen sense u ili za o s els sis emes dis in s, degu a la al a de màquines ísiques i po ència de còmpu pe a execu a al ma eix emps un sis ema dis ibuï amb o s els sis emes, an d’hospi als com de di e en s coo dinado s, que acin al a en cada ni ell. Una egada explica o l’an e io , ja es poden eu e les conclusions ob ingudes amb cada pa eali zada en aques p ojec e, que s’explica an en el següen apa a . 102 5 Conclusions 5.1 Objec ius comple s La idea d’implemen a aques canal de comunicació ha ia so gi pe la necessi a de pe me e la in e acció en e di e en s pla a o mes mul i-agen , de mane a que s’ha a iba a implemen a en una pla a o ma aques p o ocol de comunicació, que es basa en els p incipis de REST. D’aco d amb el subobjec ius indica s al p incipi de la memò ia, s’ha eali za un anàlisi de les di e en s pla a o mes de sis emes mul i-agen que exis eixen ac ualmen , on s’ha a iba a la conclusió d’u ili za la pla a o ma de SPADE pe a a egi -li el nou canal de comunicació. Desp és s’ha anali za i compa a els di e en s amewo ks web que es pogue en u ili za amb la pla a o ma mul i-agen de SPADE, de mane a que s’ha escolli Flask pe a desen olupa el canal de comunicació seguin el p o ocol REST. Pa in dels subobjec ius an e io s, s’ha implemen a el mòdul REST mi jança la coo dinació d’un agen del sis ema de SPADE i un se ei web de Flask, de mane a que es pogue a comunica amb la es a dels agen s de la pla a o ma i amb sis emes ex e ns. Una egada eali za aques mòdul, s’ha dissenya un exemple bàsic de comunicació en e dos sis emes de la ma eixa pla a o ma, pe ò en di e en s màquines pe a comp o a el seu uncionamen i co egi di e en s aspec es que poden ocasiona p oblemes. L’exemple dissenya consis eix en que un sis ema eali za una sol·lici ud a l’al a pe a que aques a li o ne una cadena de ca àc e s. S’ha c ea desp és un sis ema dis ibuï je à quic complexe, on un sis ema mul i-agen ha d’in e ac ua amb al es sis emes mi jança el mòdul de comunicació REST dissenya . El sis ema dissenya consis eix en ob ind e la mi jana de empe a u es d’aquells alo que li o nen di e en s sis emes, que al ma eix emps ho demanen a al es. També s’han eali za p o es, amb el ha dwa e que es enia disponible en aquell momen , depenen del núme o d’agen s que ob enen la seua empe a u a dis ibuï s en di e en s quan i a s de sis emes, si ua s en la pa in e io de la dis ibució je à quica. Pa in d’aques es p o es s’ha comp o a que hi ha més es abili a en el uncionamen dels di e sos agen s d’un sis ema quan aques es à o ma pe menys agen s, de mane a que es millo u ili za di e en s sis emes d’agen s que al ma eix emps es puguen in e ac ua en e ells. 103 Pla a o ma pe a la in e ope abili a de sis emes mul i-agen Finalmen , s’ha implemen a un al e sis ema dis ibuï , pe ò d'àmbi més p o essional, que consis eix en la coo dinació en el asplan d’ò gans en e di e en s hospi als d’un país. El desen olupamen d’aques sis ema s’ha basa en el sis ema de coo dinació implemen a en el subobjec iu an e io , i en el disseny explica en un a icle eali za en e di e en s depa amen s de dis in es uni e si a s, de mane a que unciona co ec amen i es possible aplica en el sis ema de coo dinació que s’u ili za ac ualmen en Espanya. Com a esum, s’ha aconsegui implemen a un nou agen en la pla a o ma de SPADE que pe me comunica -se amb al es sis emes de la ma eixa pla a o ma mul i-agen mi jança el p o ocol REST. 5.2 T eballs u u s En aques p ojec e s’han eali za di e en s asques pe a pode eali za els objec ius p oposa s, de mane a que s’han ob ingu els esul a s espe a s i que al ma eix emps pe me en con inua amb el seu desen olupamen del p ojec e. Els possibles eballs u u s que es pod ien eali za són els següen s: Millo a el mòdul de comunicació eali za . El sis ema de comunicació implemen a unciona co ec amen , pe ò s’han de ec a casos en els que es alen i za el seu uncionamen , degu a la ecepció simul ània de di e en s sol·lici uds pe pa de mol s sis emes, que obliguen al mòdul u ili za una cua de pe icions. Pe a soluciona aques p oblema, s’ha pensa p oposa un eball u u on s’in en a à pa al·leli za el p océs de ecepció de pe icions, el qual po demana o na a implemen a mol es pa s del mòdul REST. Implemen a el canal de comunicació en al es pla a o mes. Com que ha ingu èxi el desen olupamen del canal de comunicació REST en la pla a o ma de SPADE, es po con inua implemen an el ma eix canal a al es pla a o mes de sis emes mul i- agen , com poden se Magen ix2, JADE o Jack. Reali za p o es amb al es se eis. Amb aques eball u u es plan eja u ili za el ma eix canal de comunicació pe a que puguen in e ac ua una pla a o ma mul i-agen amb al es se eis web o disposi ius, com poden se aquells elaciona s amb la In e ne de les coses. U ili za el mòdul REST en un escena i eal. Enca a que s’ha u ili za el mòdul en di e en s sis emes dis ibuï , aques s consis ien en en o ns simula s i con ola s. Aques eball u u consis i ia en u ili za la pla a o ma de SPADE en un en o n eal amb di e en s sis emes dis ibuï s, com és el cas de l’ul im sis ema implemen a , que es pod ia u ili za en el camp de la medicina. 104 6 Bibliog a ia [1]: Juan Cues a Con e as, Bo ja Muñoz Bosch. Pla a o mas de Agen es In eligen es. [2]: Ana Ma ía A u a Sánchez. Pla a o mas de agen es. [3]: GTI-IA. Magen ix2. h p://www.g i-ia.up .es/sma/ ools/magen ix2/ [Consul a: 31 de ma ç de 2017] [4]: JADE Si e. JAVA Agen s DE elopmen F amewo k. h p://jade. ilab.com/ [Consul a: 31 de ma ç de 2017] [5]: AOS G oup. JACK. h p://www.agen -so wa e.com.au/p oduc s/jack/ [Consul a: 24 d'ab il de 2017] [6]: Jose Sebas ián Canós. La pla a o ma de agen es SPADE. [7]: Jomi F ed Hübne , Ra ael Hei o Bo dini. Jason | A Ja a-based in e p e e o an ex ended e sion o Agen Speak. h p://jason.sou ce o ge.ne /wp/ [Consul a: 8 de maig de 2017] [8]: Wikimedia Founda ion Inc.. Rep esen a ional s a e ans e . h ps://en.wikipedia.o g/wiki/Rep esen a ional_s a e_ ans e [Consul a: 15 d'ab il de 2017] [9]: Roy Thomas Fielding. 2000. A chi ec u al S yles and he Design o Ne wo k-based So wa e A chi ec u es. pp. 76-86. [10]: Todd F ed ich. REST API Tu o ial. h p://www. es api u o ial.com/ [Consul a: 10 de eb e de 2016] [11]: Juha Koskelainen. WebF amewo ks. h ps://wiki.py hon.o g/moin/WebF amewo ks/ [Consul a: 16 de eb e de 2017] [12]: A min Ronache . Flask (A Py hon Mic o amewo k). h p:// lask.pocoo.o g/ [Consul a: 6 de maig de 2016] [13]: Ma cel Hellkamp. Bo le: Py hon Web F amewo k. h p://bo lepy.o g/docs/de /index.h ml [Consul a: 6 de maig de 2016] [14]: Falcon Con ibu o s. Falcon - The minimalis Py hon WSGI amewo k. h ps:// alcon amewo k.o g/ [Consul a: 8 de maig de 2016] [15]: Django So wa e Founda ion. The Web amewo k o pe ec ionis s wi h deadlines | Django. h ps://www.djangop ojec .com/ [Consul a: 9 de maig de 2016] 105