Second Life e Java: prospettive di comunicazione

download Second Life e Java: prospettive di comunicazione

If you can't read please download the document

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