Second Life e Java: prospettive di comunicazione
-
Upload
ruggeridany -
Category
Technology
-
view
1.960 -
download
1
Transcript of Second Life e Java: prospettive di comunicazione
Cos' il Javaday?
2007
Organizzato direttamente dalla collaborazione della community Java, gira l'Italia con passione
Javaday un evento unico nel mondo!
L' edizione romana a cura di
Jug Roma Java Italian Portal Java Italian Association
2006
Daniela Ruggeri e Alessandra Paola
Prospettive di Second Life e comunicazione con Java
Agenda
Descrizione di Second Life
Formazione e condivisione della conoscenza
Architettura del sistema
Comunicazione Java e non
Wonderland Un mondo alternativo
Possibile scenario futuro
Progetto di un mercato virtuale
SECOND LIFE secondo Rebecca Taply
In the beginning (online) there was text, ant text was good. Email proved very useful. Ftp sites made transferring large files quite easy. IRC chat gave birth to the almighty emoticon :-)
Next came the World Wide Web text with pictures, and that was definitely better. The Web helped the Internet grow into one, powerful, ginormous encyclopaedia of searchable information. Search engines such as Lycos, Altavista, and Google made it possible for users and Web sites to find each other, Not to mention the game. Elaborate, gorgeous games like Neverwinter Nights, Ultima Online, Everquest, and Worlds of Warcraft. Adventures all over could play together in real time!
Soon the corporated world opened its eyes. Shopping carts, live customer service, and PayPal made online commerce a reality. Successful ,profitable companies such as eBay, Amazon, and Netflix come into existence and still exist solely because of the Internet.
Could it any better, or more innovative?
Yes, it could, and it as: Second Life
Cos' SECOND LIFE?
Second Life un mondo virtuale tridimensionale multi-utente online inventato nel 2003 dalla societ americana Linden Lab. Il sistema fornisce ai suoi utenti (definiti "residenti") gli strumenti per aggiungere e creare nel "mondo virtuale" di Second Life nuovi contenuti grafici: oggetti, fondali, fisionomie dei personaggi, contenuti audiovisivi, ecc. La peculiarit del mondo di Second Life quella di lasciare agli utenti la libert di usufruire dei diritti d'autore sugli oggetti che essi creano, che possono essere venduti e scambiati tra i "residenti" utilizzando una moneta virtuale (il Linden Dollar) che pu essere convertito in veri dollari americani.
Da Wikipedia
Chi sono i residenti?
Praticamente tutte le et dai 18 in poi e le categorie sociali
Persone che cercano solo il divertimento e conoscenze di altre persone
Professori per sperimentare varie forme di insegnamento
Aziende che pubblicizzano il loro marchio
Privati e agenzie immobiliari che fanno compravendita di terreni e case
Case di moda
Informatici
Negozianti di abbigliamento
Politici
Economia e Business
Linden Dollar suo cambio $1 >L$ 186
Marketing
Affitto e compravendita di terreni e isole
Lavoro virtuale e reale
Nuovi servizi di business virtuali e/o reali
Intrattenimento
Conversazione tramite VOIP
Chat
Discoteche
Luoghi di arte e cultura
Concorsi ludici
Corsi per il tempo libero (scacchi, corsi di vela, ecc.)
Concerti
Intere isole dedicate ai giochi di ruolo
Riproduzione di ambienti della letteratura o della cinematografia di vario tipo
Condivisione della conoscenza
Biblioteche
v-learning
Gruppi tematici
Riunioni culturali con scambi di opinioni
Trasmissione di conferenze in contemporanea ad eventi reali
Riproduzione di musei e opere d'arte ampiamente documentate
Simulazione di tecnologie e prodotti
Corsi OOP e java tramite v-learning
Ma anche di altro....
Ambiente Second Life
Costruire oggetti divertente e creativo
L'ambiente di sviluppo in Second Life
Comunicazione interna
Linden Script Language (LSL)
Sintassi C-like
Non orientato agli oggetti
Orientato agli eventi e agli stati
Circa 300 funzioni di libreria
bytecode compiled prima del runtime
Esecuzione in una virtual machine
default { state_entry() { llSay(0, "Ciao, Avatar!"); state open; } } state open { touch_start(integer total_number) { llSay(0, "porta aperta"); state close; } } state close { touch_start(integer total_number) { llSay(0, "porta chiusa"); state open; } }
Categorie LSL
Esempio per categoria Avatar
integer llGetAgentInfo(key id);
Ritorna informazioni sullo stato dell'avatar:
Comunicazione esterna
uno standard per spedire Procedure Calls (per esempio function calls) a sistemi remoti. Esso spedisce dati in formato via HTTP. LSL riceve richieste XML-RPC e le passa alla primitive specificata. Esso non pu stabilire questa connessione ma pu rispondere e mantenere la comunicazione nel doppio senso con il server. Queste risposte possono tasportare molti dati fuori di Second Life.
Comunicazione con JSP/Servlet
llHTTPRequest e http_response
Comunicare con SMS
Cabina telefonica freebye Starfruit
Il servizio Starfruit si sveglia ogni 5 minuti e si connette al server tramite llHttp_request
Il server risponde con nuove texture e informazioni
E' possibile teletrasportarsi ad altre cabine telefoniche
E' possibile spedire SMS free da SL verso numero telefonici
E' possibile ricevere SMS di risposta a verso SL
Come funziona il servizio SMS
Il servizio in ascolto sul canale 8
E' sufficiente digitare in acquisizione /8 num. Tel messaggio
Il servizio intercetta il comando e le informazioni sull'avatar
Il messaggio assieme al numero e al nome dell'avatar vengono spedite al server tramite una richiesta HTTP.
Il messaggio viene analizzato dl server e spedito verso il numero telefonico
Viene spedita a video per l'avatar la richiesta di operazione correttamente eseguita
Il servizio offerto dalla societ Starfruit
Un progetto alternativo: Wonderland
Sia il server che il client open-source java
Disponibile su Windows, Solaris e Mac
Installazione Wonderland
Scaricare il .exe dal sito
https://lg3d-wonderland.dev.java.net/
e installarlo
Installare il JDK 6
Installare .NET 3.0 (se la piattaforma windows)
Creare sotto la directory C:\Documents and
Settings\ una directory .wonderland
Copiare c:\Programmi\Project Wonderland\Wonderland
dev-0-2-0\my.run.properties sotto .wonderland
Copiare la directory c:\Programmi\Project
Wonderland\Wonderland dev-0-2-0\config sotto .wonderland
da menu' startare Wonderland server
da menu' startare Wonderland client
Ciclo dell'Hype per le tecnologie esistenti: a che punto SECOND LIFE?
Technology trigger. Riguarda il punto di inizio di un'innovazione, una dimostrazione pubblica, un lancio di prodotto o l'altro evento che possa generare l'interesse significativo dell' industria e della Stampa.
Peak of inflated expectations. E' una fase di superentusiasmo e di previsioni del futuro non realistiche, insomma una sorta di tempesta di ottimismo che produce pi danni che altro. In questa fase guadagnano soprattutto gli organizzatori dei congressi e gli editori di riviste del settore.
Trough of disillusionment. E' la fase della disillusione in cui la tecnologia diventa fuori moda e la stampa abbandona l'argomento perch la tecnologia non ha rispettato le aspettative gonfiate.
Slope of enlightenment. E' questa la fase pi stabile dove si nascono sempre pi organizazioni di varie gamme che portano avanti progetti pi razionali e che fanno cresere il mercato.
Plateau of productivity. I benefici della tecnologia sono dimostrati ed accettati. Gli strumenti e le metodologie sono sempre pi stabili poich entrano nella loro seconda e terza generazione. L'altezza finale del plateau varia secondo come la tecnologia largamente applicabile o soltanto avvantaggia un mercato di nicchia.
Possibili scenari futuri
Internet 3D (WEB 3.0) accanto a pi mondi virtuali appartenenti a societ differenti
Necessit di standardizzazione dei mondi virtuali
L'avatar potr migrare da un mondo all'altro mantenendo il suo aspetto e I suoi oggetti
Risultato: maggiori possibilit di fare business, informazione e maggior numero di attivit lavorative.
Progetto di un mercato virtuale: e-stockflow
E-stockflow rappresenta un marketplace che offre un servizio a chiunque voglia vendere o comprare abbigliamento, calzature, accessori e intimo in stock.
Possiede un feed RSS per visualizzare gli ultimi stock inseriti
Alcune caratteristiche del terreno scelto
Dimensioni: 512 mq
Prima disposizione: 117
Costo: 6500 L$ (circa 17 )
Ubicazione: sulla Land nei pressi di una discoteca
Proprietario: gruppo e-stockflow
Valutazione risorse utilizzate: costi
Costo del grafico 0Andre0 per la realizzazione di 10000 L$ (circa 25 )
Costo dell'abbonamento mensile di 9,95 $ (circa 6,7 )
Stipendio settimanale ricevuto dalla Linden di 400 L$ (circa 1 )
Bonus ricevuto dalla Linden per la sottoscrizione dell'abbonamento di 1000 L$ (circa 2,5 )
...insieme all'acquisto del terreno otteniamo un costo annuale di quasi 27000 L$...appena 67 !!!
Valutazione risorse utilizzate: tempi
Tre settimane dedicate all'analisi delle funzionalit da realizzare
Una settimana per la costruzione dell'architettura di base del mercato
Una settimana per la creazione delle texture personalizzate
Una settimana per preparare e far funzionare gli script
...dopo un mese il mercato operativo e aperto al pubblico!!!
Valutazione risorse
...consideriamo che per ottenere gli stessi risultati nella realt dovremmo parlare nell'ordine di anni e possedere un conto in banca che abbia non meno di sei zeri!!!
Uno sguardo nel dettaglio: le bancarelle
Ogni articolo esposto contiene uno script per effettuare la ricerca dello stock interessato direttamente sul sito die-stockflow.
Un pannello permette la ricerca generale per sesso e settore.
Le bancarelle sono state suddivise per tipologia di articoli in esposizione: intimo e mare, pantaloni e gonne, camicie, giacche, giubbotti, t-shirt, scarpe, vestiti, felpe e accessori.
Per la scelta del linguaggio...
Lo script richiede e memorizza la lingua dell'avatar
key ak; integer channel = 1; string linguaggio=""; integer olf; Default { state_entry(){} touch_start(integer total_number){ ak = llDetectedKey(0); if (linguaggio=="") { olf = llListen(channel,"",NULL_KEY,""); llDialog(ak,"Please select a language",["english","italiano"],channel); } else if (linguaggio=="inglese") state english; else if (linguaggio=="italiano") state italiano; } listen(integer channel,string name,key id, string msg){ llListenRemove(olf); if (msg == "english") state english; else if (msg == "italiano") state italiano; else state default;} }
...e la ricerca sul sito
...e carica la pagina URL nella lingua selezionata
state english { state_entry() { linguaggio="inglese"; olf = llListen(channel,"",NULL_KEY,""); llLoadURL(ak,"Clic for shirts women stocks","http://www.e-stockflow.com/apparel/index.jsp?language=01&dosearch=HOGAN&cod_tipart=26&cod_sesso=02&redirect=home-page_new.jsp"); llListenRemove(olf); state default; } } state italiano { state_entry() { linguaggio="italiano"; olf = llListen(channel,"",NULL_KEY,""); llLoadURL(ak,"Cliccare per visualizzare stocks di camicie donna","http://www.e-stockflow.com/apparel/index.jsp?language=00&dosearch=HOGAN&cod_tipart=26&cod_sesso=02&redirect=home-page_new.jsp"); llListenRemove(olf); state default; } }
Uno sguardo nel dettaglio: i feed RSS
Un lettore RSS open-source stato modificato per caricare su Second Life gli ultimi stock inseriti
Struttura lettore RSS
Oggetto composto da 7 prim linkati: una radice e 6 prim figli
Ogni prim identificato da un numero all'interno del link
I figli comunicano e scambiano informazioni con la radice tramite il numero che li identifica
Il prim radice nascosto nell'oggetto e ha numero 1 nel link
L'architettura: la funzione llHTTPRequest e l'evento http_response
L'oggetto comunica con il server di e-stockflow tramite il server php di secondlifelab lanciando la funzione llHTTPRequest.
Il programma rss.php sul server riceve come parametri o i titoli o il numero dello stock e l'url da cui prelevare le informazioni.
Nel nostro caso si tratta degli indirizzi
http://www.secondlifelab.it/rss.php?op=titles&url=http://www.jelel.com/apparel/rss/ultimistockinseriti1.xml
http://www.secondlifelab.it/rss.php?op=body&number=0&url=http://www.jelel.com/apparel/rss/ultimistockinseriti1.xml
Quindi interroga la pagina XML in formato RSS, preleva i dati
richiesti e li spedisce indietro all'oggetto in Second Life tramite
l'evento http_response.
...l'oggetto in ricezione
state elab{
state_entry(){
llMessageLinked(LINK_ROOT, llGetLinkNumber(), "", NULL_KEY);
counter = 0;
}
link_message(integer sender_num, integer num, string msg, key id) {
if(num == llGetLinkNumber()){
counter = 0;
llInstantMessage(last_key, msg);
integer i = llSubStringIndex(msg,"http");
integer j = llStringLength(msg);
string URL= llGetSubString(msg,i,j);
llLoadURL(last_key,"Go to the stock description",URL);
state default;
}
else if(num == 0)
llResetScript();
else if(num == -1){
if(counter < timeout){
llMessageLinked(LINK_ROOT, llGetLinkNumber(), "", NULL_KEY);
llInstantMessage(last_key, "Waiting please... Connecting to the server");
llSleep(5);
counter++;
}
else {
llInstantMessage(last_key, "Timeout of server. Click again plz");
state default;
}
}
}
Cosa accade in Second Life
Lo script contenuto in ogni cubetto:
Riceve in risposta la descrizione di uno stock
Spedisce la descrizione in un istant message
Ricerca nella descrizione una sottostringa contenente l'indirizzo URL relativo allo stock e lo carica
In conclusione
Second Life non solo un gioco a tre dimensioni ma offre importanti opportunit di sviluppo per le comunit.
E' un sistema relativamente giovane: pu migliorare ancora dal punto di vista delle performances, delle infrastrutture, della sicurezza e dell'apertura del server.
E' un mondo che rende pi accessibili il reperimento di informazioni e la cultura.
Le aziende possono sfruttare le potenzialit di Second Life per avere riscontri positivi sulla propria immagine nella realt.
Migliori aspettative per il lavoro e per una rinnovata economia.
Importanti prospettive per quanto riguarda le interazioni tra il client di Second Life e il resto della Rete.
Arrivederci
Grazie a tutti della vostra attenzione
Sydnei Beresford
Nefertite Rehula
0Andre0 Barbosa
Links
Second Life: http://www.secondlife.com
LSL: http://wiki.secondlife.com/wiki/LSL_Portal?ref=login
Creare abiti e apparenza per avatar:
http://s3.amazonaws.com/static-secondlife-com/downloads/textures/fashion/All_Fashion_Design_Templates.zip
XML- RPC: http://www.xmlrpc.com
Starfruit: http://www.starfruit.ch
Sito e-stockflow: http://www.e-stockflow.com
SLURL e-stockflow: http://slurl.com/secondlife/Whippendom/245/79/33
Segnalazione
5 Dicembre ore 9.00
Scenari virtuali per un apprendimento reale:
Potenzialit e limiti di mondi virtuali nella formazione.
http://www.didagroup.it/popup.htm
Hotel Radison SAS Via Filippo Turati Roma.
Grazie...:-)
Prospettive di Second Life e comunicazione con Java
(Versione 1.0)
(C) 2006 Daniela Ruggeri ([email protected]) e Alessandra Paola ([email protected])
garantito il permesso di copiare, distribuire e/o modificare questo documento seguendo i termini della Licenza per Documentazione Libera GNU, Versione 1.1 o ogni versione successiva pubblicata dalla Free Software Foundation. Una copia della licenza in lingua italiana disponibile presso:
http://www.softwarelibero.it/gnudoc/fdl.it.html
Tutti i marchi commerciali sono di propriet dei rispettivi titolari e sono stati citati in questa presentazione a solo scopo illustrativo.
Cliccate per modificare il formato del testo della struttura
Secondo livello struttura
Terzo livello struttura
Quarto livello struttura
Quinto livello struttura
Sesto livello struttura
Settimo livello struttura
Ottavo livello struttura
Nono livello struttura
Daniela Ruggeri, Alessandra Paola - [email protected], [email protected] - JIAJavaday Roma - 01/12/2007
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License