Newsgroup: it.comp.java
Titolo: programmazione ad agenti java

poichč mi č venuto il dubbio che neppure il mio prof. abbia le idee molto 
chiare... sapreste indicarmi un libro o un link che in modo chiaro spieghi 
quali sono i vantaggi della programmazione usando agenti java?
ad esempio: quando conviene usare gli agenti?
stiamo usando jade, ma con esempi banali di agente compratore - agente 
venditore e non ci vedo un grande vantaggio nell'uso ad agenti rispetto ad 
una architettura client - server
in particolare dovrei costruire un sistema che assista un utente 
compratore e dia suggerimenti, un po' come il sistema su ebay che cerca di 
indovinare i prodotti che potrebbero interessare al cliente, avreste 
qualche link per approfondire queste tematiche?
tnks 

 poichè mi è venuto il dubbio che neppure il mio prof. abbia le idee molto

Questo potrebbe fare al caso tuo..
http://www.amazon.com/Developing-Multi-Agent-Systems-Wiley-Technology/dp/0470057475/ref=sr_1_1/002-0574035-7512011?ie=UTF8&s=books&qid=1194740961&sr=1-1
Questo anche non e'da buttar via ed e' molto meno costoso
http://www.amazon.com/Constructing-Intelligent-Agents-Using-Java/dp/047139601X/ref=sr_1_5/002-0574035-7512011?ie=UTF8&s=books&qid=1194741138&sr=1-5

 qualche link per approfondire queste tematiche?
Tra gli esempi di Repast (il link è sopra) trovi qualcosa di simile.
Il concetto di fondo non è complesso: parti da una serie di agenti che 
osservano il comportamento dell'utente (cosa osserva, cosa compra) e gli 
propongono dei link. Ogni agente propone link usando un algoritmo 
leggermente diverso (ad esempio, all'inizio, potresti avere un agente 
che confronta le descrizioni, uno che lo fa con i prezzi, uno con i 
venditori, uno con le categorie...), poi a seconda del feedback 
dell'utente (in pratica verificando quale link sceglie) crei una seconda 
generazione di agenti, più specializzati (ad esempio che confrontano 
solo le descrizioni, ma lo fanno in modo diverso: un agente cerca una 
parola chiave, uno la combinazione di più parole in "and", uno in "or", 
etc.).
Ovviamente questo passaggio di generazioni non lo devi fare tu 
"manualmente" ma se ne deve occupare il framework che utilizzi, 
adeguatamente programmato a priori.
Spero di averti dato qualche indicazione utile.
A disposizione, ciao,
Paolo

 Spero di averti dato qualche indicazione utile.
si grazie, ora mi metto a studiare gli spunti che mi hai dato

 a leggere l'indice, sembra + un libro di economia che di informatica :-P
Sicuramente è un libro molto introduttivo e discorsivo, adatto anche a 
dei lettori con limitate conoscenze informatiche.
Però fa molti esempi, casi d'uso, offre parecchi spunti di riflessione.
L'ho passato anche a conoscenti che di informatica sanno poco e ho visto 
che l'hanno apprezzato.
Poi, IMHO, se servono cose tecniche e specifiche meglio puntare sul web 
che sui testi.
Ciao,
Paolo

 nel modo migliore...
M'è sorto un dubbio: sicuro che si parli di programmazione ad agenti e 
non di programmazione/architettura distribuita?
Visto che le due cose sono talvolta correlate e da alcuni discorsi fatti 
non vorrei che fossimo usciti di strada... ;)

 usciti di strada... ;)
il corso si chiama "reti di calcolatori" nella pratica consiste in un 
brevissimo ripasso delle architetture di rete, in un ripasso di sintassi 
java, e nella spiegazione della documentazione di jade
la prova consiste nella realizzazione di un progetto usando jade, nel 
progetto deve essere implementato un  recommender system e l'architettura 
deve essere di tipo peer-to-peer
quindi è uno di quei corsi in cui si vuole fare un po' di tutto, senza 
pero' fare nulla bene 

 pero' fare nulla bene 
Purtroppo quello è un problema frequente: poco tempo, troppa carne al 
fuoco...
Poi in un corso universitario, in cui la stragrande maggioranza degli 
studenti sente parlare per la prima volta di questi argomenti, un po' di 
confusione è inevitabile.
Però tutto sommato mi sembra che la cosa sia stata fatta anche con 
criterio: Jade è un framework principalmente orientato ad architetture 
distribuite (quindi non devi riadattare librerie a lavorare in ambienti 
diversi da quelli per cui son state pensate), è in java, permette di 
lavorare in rete a livello relativamente basso (quindi un po' di ripasso 
sulle reti ci sta anche bene).
Poi è uno strumento diffuso in Italia, anche perché è prodotto e usato 
da telecom italia ;)
Se te lo sei già scaricato dai un'occhiata ai sorgenti dei vari test, 
già qualche anno fa c'erano dentro parecchi casi d'uso indicativi 
(seppur semplici), non penso li abbiano tolti.
O forse potrebbero averli messi come pacchetti extra (ricordo che 
parlavano di ripulire e ridurre un po' il codice del "core"), esterni 
alla libreria ma comunque accessibili dal sito.
Ciao,
Paolo