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