Architettura
copia linkIntroduzione
Il modulo Team Works è un sistema di controllo versione che permette a più programmatori di lavorare sullo stesso progetto nello stesso momento. Permette inoltre di mantenere aggiornate le copie del progetto aperte sui vari client, informandoli delle modifiche apportate al progetto da parte di ciascun programmatore. Per fare questo viene utilizzata la seguente architettura client-server:

Architettura del sistema Team Works.
Come mostrato nell'immagine, il sistema Team Works è composto da un server, uno o più client ed un database (SQL Server 2005).
I compiti svolti dal server sono i seguenti:
- conservare la copia più recente del progetto (chiamata anche copia master) aggiornandola ogni qualvolta un client ne faccia richiesta;
- conservare tutta la storia delle modifiche apportate al progetto permettendo di ottenere una copia del progetto ad una certa data o, più in generale, prima di una certa modifica effettuata da uno dei client;
- decidere se un singolo client può effettuare una certa modifica su un oggetto del progetto;
- allineare tra loro i vari progetti gestiti dal sistema Team Works permettendo di sincronizzare tra loro oggetti contenuti in progetti diversi;
- gestire il branch e merge ovvero la possibilità di avviare, a partire da un progetto esistente, una nuova linea di sviluppo. E' poi possibile chiedere al sistema Team Works di riallineare le due linee di sviluppo informando il programmatore delle eventuali collisioni.
I client Team Works, all'apertura di un progetto gestito dal modulo Team Works, effettuano il login sul server. Se il server certifica l'utente, il client Team Works è pronto all'uso. Non appena il programmatore effettua una modifica ad uno degli oggetti del progetto il client controlla se tale oggetto è già bloccato dal programmatore, ovvero se il programmatore ha già ricevuto, in precedenza, l'autorizzazione alla modifica di quell'oggetto da parte del server. Se il client non ha mai ricevuto in precedenza tale autorizzazione chiede al server se il programmatore può effettuare la modifica. Se il server risponde in maniera affermativa la modifica è permessa ed il client conserva tale autorizzazione in modo che modifiche successive allo stesso oggetto non richiedano nuove connessioni al server. Se la risposta del server è negativa la modifica non viene portata a termine ma viene annullata. Questa autorizzazione non è ovviamente necessaria per quei progetti che non sono gestiti dal modulo Team Works. Al termine della modifica il programmatore può inviare al server le modifiche da lui effettuate indicando anche una descrizione della modifica effettuata. Il server apporta la stessa modifica sulla copia master. Da ultimo, il programmatore può, in qualunque momento, chiedere al server di aggiornare la copia presente sul client acquisendo tutte le modifiche effettuate dagli altri programmatori in modo da potersi allineare a loro. Il client aggiorna la copia del programmatore allineando tale copia alla copia master presente sul server.
Ultima modifica: 23/03/2021 / Validità: da 7.5.3400