OpenSimulator:Introduction and Definitions-it

=Introduzione e definizioni di Opensimulator=

Il progetto Opensim è una piattaforma flessibile che può simulare degli spazi virtuali tridimensionali. Questi spazi virtuali danno la possibilità di creare, modificare, cancellare e scriptare dinamicamente oggetti (Primitive) -- alcuni dei quali, quando propriamente linkati, istruiscono il client 3D in modo da renderizzarli in nuovi modi.

Come dimostrazione della potenza di questa piattaforma, è stata scritta nella sua configurazione di default, per essere compatibile con il client di Second Life, rilasciato dalla Linden Lab sotto licenza GPL

Abbastanza consapevolmente con l'originale struttura di rete della Linden Lab, sono necessari 5 servizi maggiori da fornire alle regioni che vogliono essere connesse con il client di Linden. Quste sono conosciute con l'acronimo UGAIM, ovvero : User, Grid, Asset, Inventory, Messaging

UGAIM
Ciascun servers gioca un ruolo specifico (e vitale) nel sistema Opensim.

UserServer: Questo è il server responsabile dell'autenticazione degli utenti nella Grid. Ciò significa che esso è responsabile di un compito molto importante: crea un identificatore di sessione per il client che può essere usato per autenticare le richieste di altri server nella stessa grid, e che associa identificatore di sessione con un UUID (Ciò può comportare una autenticazione crittografica, autenticazione OpenID, o anche l'attuale Nome / password di autenticazione dei residenti.)

GridServer: Questo è responsabile per l'autenticazione qualcosa di diverso alla rete: le regioni.Poiché la rete è bidimensionale, e siccome ogni regione ha le coordinate X e Y, è necessario garantire che una particolare coordinata x,y vengano assegnati correttamente (qualunque sia il mezzo 'corretto' per la griglia in questione) ma l'impostazione predefinita di OpenSim è costituita da 2 canali di autenticazione con il server di regione, basata su uno schema a password condivisa (chiamate "password di ingresso" e "password di uscita"). A ciascuna regione è assegnata una UUID.

AssetServer: Si tratta essenzialmente di un WFRM database (scrivere pochi, leggere molti).Una volta che un asset (oggetto) viene inserito, succedono 2 cose: Uno, viene assegnato un UUID come etichetta ... e due, non è per la vita (anche se negli sviluppi futuri di OpenSim, asset inutilizzati potranno essere individuati e sfruttati).Suoni, texture, immagini, notecards, script, oggetti serializzati di inventory sono aggiunti, e mai più modificati (saranno "immutabili"). Se si ha necessità di modificare una grafica di soli 2 pixel a sinistra nella vostra casa virtuale, sarà necessario ricaricare un nuovo asset (un immagine) alla quale verrà assegnato un nuovo UUID e associato alla nuova immagine.Quello vecchio rimarrà per sempre.

InventoryServer:Tutto questo va benissimo, ovviamente, ma se questo rimane criptato in un valore chiave all'interno di un database, quale è il punto? Come puoi mantenere tutto regolare? il UUID va benissimo per i computer ma non ha nulla a che fare con un etichetta leggibile dall'uomo e dove rimane traccia dove l'oggetto si trova? Questo è il lavoro per un database molto diverso: uno disegnato per per essere letto e scritto un po di volte. Questo è l'inventory server.Funziona (l'avrete già indovinato) linkando i singoli UUID insieme. Lutente ha un suo UUID, che è usato per leggere la sua cartella di base (Inventoryroot UUID) e la cartella base ha una lista di cartelle UUID dalla quale leggere, ciascuna cartella ha a sua volta un elenco di UUID di oggetti che sono poi linkati ad asset ed hanno un nome descrittivo.L'inventory server contiene anche le autorizazioni degli oggetti.

MessagingServer: Queste sezione viene subito dopo, non essendo essenziale come le altre 4. Tuttavia, se si desidera che i residenti comunichino tra loro in modo fluido, senza creare lettere-primitive in cielo, ci sarà bisogno di questo componente.Questo server traccia chi è abilitato ad ascoltare gli altri, tiene traccia del messaggi istantanei su lunga distaza (si immagini gli sms nel mondo reale) e lascia i messaggi non letti finchè non lo si fa (davvero come gli sms)

Tutti questi servers sono importanti e siccome sono cosi' importanti, condividono una specifica proprietà: Devono essere UNICI

Tutti questi server sono importanti, e siccome sono così importanti, tutti condividono una specifica proprietà: ve ne può essere uno solo (di ciascuno, conosciuto da una determinata regione).

Region
Oh yeah, the Region. The Region runs physics, runs scripts (though this may one day be moved off of the Region), keeps track of objects in the scene, keeps track of any observers connected, and sends scene updates to all of the observers. To it, everything it knows about is a UUID. Every last little thing -- a user connected is a UUID, an observer is a UUID, its terrain heightmap is a UUID, an asset is a UUID, a primitive is a UUID, the script running is a UUID... get the picture? It's a glorified data processor.

A Region is, not to put too fine a point on it, a memory space and behavior simulator which can share its state with observers. In short, it is a 3-dimensional MUD.

OpenSim has two modes of operation -- they're called "standalone mode" and "grid mode" (there is also an experimental Hypergrid intergrid mode that we won't go into here). These modes are distinct only in where they get their UGAIM services from. In standalone mode, the region provides its own UGAIM service interfaces and these are run in a single process. In grid mode, each service is run in a separate process, and each process can in principle be run on a different machine.

In grid mode, the UGAIM servers are all run as centralized grid services. All of the users have to be known by all regions, for example, and also have to interact with the Grid itself (which is defined, somewhat arbitrarily, as a 2-dimensional map akin to township and range specification for real property). The region keeps a temporary cached copy of assets (currently set to 24 hours), but not a permanent local copy of its assets. Other entities such as users, messages, or inventory aren't peristently cached. In fact, region servers will opportunistically cache many things to reduce perceptual lag for the client.