vuoi
o PayPal
tutte le volte che vuoi
Collegamenti
Videogiochi online, tesina
Videogiochi online, tesina
Gestione - Figure professionali
Progettazione - Architettura client-server
Sistemi - Sicurezza informatica
Informatica - SQL GRANT & REVOKE
Inglese - Database
Storia - Seconda Guerra Mondiale
Italiano - Ermetismo e Quasimodo
GESTIONE PERMESSI DEGLI UTENTI
NEL DATABASE E COMANDI
SQL(GRANT E REVOKE) 7
SICUREZZA NELLA RETE (ATTACCO
DOS AL PSN NEL 2011) 9
SECONDA GUERRA MONDIALE 11
ERMETISMO E QUASIMODO 14
1 1
2 Introduzione
Il videogioco è un gioco gestito da un dispositivo elettronico che
consente di interagire con le immagini di uno schermo. Il termine può
identificare un software oppure un dispositivo hardware dedicato a uno
specifico gioco.Colui che utilizza un videogioco viene chiamato
"Videogiocatore" e si serve di una o più periferiche di input quali il
joystick, la tastiera, il joypad ecc.
La massiccia diffusione di Internet negli anni novanta ha favorito una
diffusione altrettanto massiccia dei videogiochi e quindi dei videogiochi
Online. In questo modo persone fisicamente lontane possono collegarsi
ad uno stesso server di gioco e partecipare alla stessa partita. Tra i
vantaggi di questo sistema vi sono la relativa semplicità di collegamento
e la possibilità di giocare con persone molto lontane. Per contro c’è la
velocità della connessione che può influire negativamente
sull'esperienza di gioco. 2
3 Figure professionali in un’azienda Videoludica
Per far si che vengano realizzati questi Videogiochi, ci sono aziende che
lavorano per la progettazione e realizzazione di questo software.
Un team di progetto per essere efficiente deve essere coordinato, in
modo che ogni membro sia motivato e lavori proficuamente.La struttura
di un team è generalmente gerarchica, costituita da vari livelli. Qualsiasi
progetto comporta rapporti interpersonali e prevede la gestione delle
persone.
Un bravo capo è colui che incoraggia il proprio team ad impegnarsi e a
dare il meglio di se e ricompensare i risultati conseguiti da ogni membro.
Deve fissare il punto di partenza e quello di arrivo, ha come obbiettivo la
soluzione migliore per un problema, preservando la serenità del gruppo
e saper mantenere il controllo della situazione.
Le figure professionali per un progetto di sviluppo valido variano in modo
molto eterogeneo a seconda delle esigenze dello sviluppo del progetto
stesso. Di norma, si possono rintracciare delle figure legate a diversi
ambiti, ma sempre per la produzione di un unico prodotto e sono:
1. Professioni legate alla grafica:
1.1 Game designer
1.2 Lead designer
1.3 Level designer
1.4 Sceneggiatore
1.5 Direttore artistico
1.6 3D level builder
1.7 3D model builder
1.8 3D texture artist
1.9 3D character animator
2. Professioni legate all’audio:
2.1 Designer del sonoro
2.2 Compositore
2.3 Ingegnere audio
3. Professioni legate alla produzione e alla gestione:
3.1 Game director
3.2 Producer
3.3 Project Manager
3.4 Business Analyst
3.5 Project Analyst
3.6 Game tester
3.7 Lead tester
4. Professioni legate alla programmazione:
4.1 Programmatore
3
4 4.2 Capo programmatore
4.3 Programmatore di engine e tool
4.4 Programmatore di grafica ed effetti speciali
4.5 Programmatore dell’Intelligenza Artificiale
4.6 Programmatore di rete/multiplayer
Project Manager È il responsabile dell’intero progetto e punto di
contatto con il cliente. Organizza le risorse aziendali e coordina le figure
professionali, cercando di raggiungere le aspettative rientrando nello
stesso budget. Ha sempre la situazione del progetto sotto controllo e in
caso di problemi, decide la soluzione orientando i lavoratori.
Business Analyst Il Project Manager all’avvio di un progetto si avvale
della collaborazione di un Business Analyst, il diretto interessato per
avviare una relazione commerciale. Persona seria e professionale e che
sappia consigliare il cliente in base alle sue aspettative. Deve ispirare
fiducia e deve conoscere il mercato in cui opera, poiché il cliente non è
un informatico e ha bisogno di essere guidato. Quando il progetto è
terminato, il B.A. ha il compito di mantenere vivi i rapporti tra cliente e
azienda, al modo di suggerire nuove commesse di lavoro.
Project Analyst È il responsabile tecnico del progetto, al quale l’azienda
ha affidato il coordinamento del lavoro da svolgere. Sotto la supervisione
del Project Manager, il titolare illustra al P.A. le esigenze di lavoro o gli
obbiettivi di produzione. Quest’ultimo studia il problema, e consultandosi
con P.M. e B.A., formula un adeguata offerta economica per la
realizzazione del progetto.
Team Leader Per sviluppare il progetto, il P.M. nomina i/il Team Leader
(Dipende dalla dimensione del progetto) che hanno responsabilità di
guidare gruppi di designers e programmatori. Il T.L. controlla il tempo di
sviluppo, la gestione delle risorse, comunicazione tra gruppi e attuazione
dei test del sistema. Suddivide il progetto e garantisce la
parallelizzazione delle attività. Collabora, poi, alla definizione dei tempi
necessari allo sviluppo, comunicando il tempo al B.A. che quindi potrà
studiare i costi e redarre l’offerta per il cliente.
Designers e Programmatori Sono coinvolti nella fase di sviluppo:
Designers: si occupano dello studio del modello informatico, delle
strutture di dati e progettano l’interfaccia.
Programmatori: attraverso un linguaggio codificano i programmi e
le specifiche tecniche prodotte dai designers.
4
5 Architettura Client/Server
Per giocare online, bisogna accedere a dei server messi a disposizione
dai produttori del videogioco e si utilizza quindi un’architettura
client/server.
Il SERVER è ospitato su un computer chiamato host ed è in ascolto
tramite un socket su una determinata porta in attesa di richiesta di
connessione da parte di un client, mentre il CLIENT invia la propria
richiesta al server tentando la connessione tramite tale porta, cioè quella
su cui il server è in ascolto.
Un client, quindi, per comunicare con un server usando il protocollo
TCP/IP deve, per prima cosa, “connettersi” al socket dell’host dove il
server è in esecuzione specificando l’indirizzo IP della macchina e il
numero di porta sul quale il server è in ascolto.
Ora possiamo distinguere due tipi di comunicazione:
UNICAST: il server comunica con un solo client alla volta
accettando una richiesta di connessione solo se nessun altro
client è già connesso;
MULTICAST: al server possono essere connessi più client
contemporaneamente (Quella utilizzata nei videogiochi Online)
Nel caso della trasmissione multicast se la richiesta di connessione tra
client e server va a buon fine, il server, prima di stabilire il canale di
connessione con il client, sposta la richiesta dalla porta nella quale è
stata effettuata, port address, su una nuova porta, così lascia libera la
prima in attesa di altre connessioni, e manda in esecuzione un thread
che soddisfa la richiesta.
Le architetture client-server sono normalmente organizzate a livelli (tier)
dove ogni livello corrisponde a un nodo o gruppo di nodi di calcolo su cui
è distribuito il sistema: ciascun livello funziona da server per i suoi client
nel livello precedente e da client per il livello successivo ed è organixxato
in base al tipo di servizio che fornisce.
In generale nelle applicazioni possiamo individuare tre tipi principali di
funzionalità che corrispondono a una struttura in tre strati o livelli:
FRONT-END o presentation tier: è l’interfaccia verso l’utente;
Logica applicativa o middle tier;
BACK END con l’accesso alle risorse/ai dati, anche detto data tier.
Architettura 1 tier 5
6 A partire dagli anni ’70 le architetture si riducevano a un solo mainframe
al quale erano collegati i terminali “stupidi”: quindi tutta l’elaborazione era
effettuata dall’elaboratore centrale e i terminali servivano solo per le fasi
di I/O.
Architetture 2 tier
A partire dagli anni ’80, sono nate le architetture client-server dove le
funzionalità e le responsabilità erano suddivise sui livelli client e server.
Possiamo individuare due sottocategorie di architetture a due livelli:
il modello THIN-CLIENT, dove il server è responsabile della logica
applicativa e gestione dei dati e il client è responsabile
dell’esecuzione del software di presentazione;
il modello THICK-CLIENT, dove il server è responsabile della
gestione dei dati mentre il client è responsabile di presentazione e
logica applicativa.
Architetture 3 tier
A partire dagli anni ’90 l’architettura client-server è a tre livelli e a ogni
livello corrisponde uno strato architetturale, dove il server è responsabile
della gestione dei dati, il client è responsabile della presentazione e il
middleware è responsabile della logica applicativa.
Architetture a n tier
Viene effettuata un ulteriore scomposizione per suddividere i compiti dei
vari strati: prende anche il nome di applicazione multi-tier.
Database Managers 6
7 A Database is an organized collection of information or data structured in
such a way that it can be used in different applications.
A database is used to store information so that it can be searched and
sorted in various ways.
Software’s reason for being is juggling. Whether the data are words,
facts, or numbers, software find new ways to compare, sort, order,
merge, separate, and connect it- all an impressive juggling act. Collect a
lot of data in some organized way, and you have a database. The
software used most often to do that is called a database manager.
Database software lets you enter, organize, and retrieve stored data.
Gestione permessi degli utenti nel database e
Comandi SQL(GRANT e REVOKE)
Per poter consentire l’accesso ai database l'amministratore deve dare
dei permessi sia alle persone tramite user e password, sia relativamente
alle operazioni che queste possono effettuare sulla base dati. In
particolare l'SQL che è un linguaggio messo a disposizione da molti
DBMS, permette di consentire gli accessi e le operazioni tramite il
comando GRANT() e gli stessi permessi possono essere revocati tramite
l'istruzione REVOKE.
Il termine DATABASE indica una base di dati ed è un insieme
organizzato di dati.Le informazioni contenute in un database sono
strutturate e collegate tra loro secondo un particolare modello logico
scelto dal progettista del database (ad es. relazionale, gerarchico,
reticolare o a oggetti). Gli utenti si interfacciano con i database attraverso
i cosiddetti query language e grazie a particolari applicazioni software
dedicate (DBMS).
SQL (Structured Query Language) è un linguaggio di interrogazione per
database progettato per leggere, modificare e gestire dati memorizzati in
un sistema b