Nuovo Ordinamento - Ingegneria - Università degli Studi di Trento
Nuovo Ordinamento - Ingegneria - Università degli Studi di Trento
Nuovo Ordinamento - Ingegneria - Università degli Studi di Trento
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
PROGRAMMI DI INSEGNAMENTO a.a. 2002/2003<br />
PROGRAMMAZIONE DI RETI<br />
3° anno - 1° bim - 6 cre<strong>di</strong>ti<br />
Corso <strong>di</strong> Laurea in <strong>Ingegneria</strong> dell’Informazione e dell’Organizzazione<br />
Obiettivi del corso<br />
Il corso prevede <strong>di</strong> introdurre ed approfon<strong>di</strong>re, attraverso case-stu<strong>di</strong>es e sperimentazione pratica,<br />
le problematiche relative alla programmazione in rete e le conseguenze dell’avvento delle architetture<br />
<strong>di</strong>stribuite sul modo <strong>di</strong> progettazione e realizzazione <strong>di</strong> una applicazione informatica per la rete.<br />
Il mondo della programmazione ha subito una prima evoluzione negli anni ’80-’90, con l’avvento<br />
delle reti e l’introduzione del modello <strong>di</strong> sviluppo client-server. Questo ha implicato una <strong>di</strong>versa<br />
progettazione delle applicazioni, una <strong>di</strong>visione del carico <strong>di</strong> lavoro tra le componenti client e server<br />
della rete, anche alla luce della aumentata capacità <strong>di</strong> elaborazione/memorizzazione dei client. Con<br />
l’avvento <strong>di</strong> Internet il para<strong>di</strong>gma <strong>di</strong> programmazione è nuovamente cambiato, vista l’evoluzione<br />
delle architetture informatiche verso ambienti client-server <strong>di</strong> tipo <strong>di</strong>stribuito, e soprattutto sono<br />
cambiati i protocolli <strong>di</strong> comunicazione utilizzati per l’interscambio <strong>di</strong> informazioni tra client e server.<br />
Anche per chi già utilizzava un approccio client-server allo sviluppo del software, il modello<br />
tra<strong>di</strong>zionalmente utilizzato (ovvero la sud<strong>di</strong>visione in tre strati: presentazione, business logic, data<br />
storage) risulta essere insufficiente se non controproducente, o per lo meno esso va rivisto nella<br />
logica del nuovo me<strong>di</strong>a, a favore <strong>di</strong> una progettazione e realizzazione <strong>di</strong> applicativi multi-tier<br />
derivanti dall’utilizzo del Web.<br />
Siamo quin<strong>di</strong> passati ad applicazioni progettate e realizzate secondo strati software <strong>di</strong>versi (tier),<br />
<strong>di</strong>stribuiti possibilmente su computer <strong>di</strong>versi in base alle esigenze, ai carichi <strong>di</strong> rete, alla struttura<br />
dell’applicazione ecc. Questo ha aumentato notevolmente da un lato la scalabilità dell’applicazione,<br />
la sua manutenibilità, il riuso dell’applicazione e delle sue componenti, dall’altro ha però incrementato<br />
indubbiamente la complessità della sua progettazione e creazione, in quanto le modalità <strong>di</strong><br />
<strong>di</strong>visione in strati (tier) <strong>di</strong>versi, il modo con cui operare tale <strong>di</strong>visione, su quale strato caricare certe<br />
funzioni piuttosto che altre, l’attenzione alla scalabilità dell’applicazione creata, sono tutte decisioni<br />
che implicano una approfon<strong>di</strong>ta conoscenza delle problematiche <strong>di</strong> rete, dell’ambiente in cui l’applicazione<br />
verrà creata, e soprattutto una rinnovata competenza dell’analista/programmatore. La<br />
tra<strong>di</strong>zionale separazione <strong>di</strong> ruoli tra chi si occupa <strong>di</strong> problematiche <strong>di</strong> rete e chi si occupa della<br />
creazione dell’applicazione è <strong>di</strong>ventata sempre più sfumata. Il corso intende quin<strong>di</strong> fare luce su<br />
questi aspetti fornendo strumenti pratici per la realizzazione <strong>di</strong> applicazioni informatiche che si<br />
muovano in questo contesto.<br />
Il corso affronterà inoltre gli aspetti innovativi introdotti dall’avvento delle tecnologie e delle infrastrutture<br />
software per la creazione dei Web Services. Questo argomento rappresenta forse uno dei<br />
cambiamenti più ra<strong>di</strong>cali non solo nel panorama della progettazione e produzione <strong>di</strong> software, ma<br />
probabilmente anche nella logica <strong>di</strong> approccio al cliente da parte delle aziende informatiche, e <strong>di</strong><br />
servizio informatico/telematico in generale. La visione della rete come erogatore <strong>di</strong> servizi software<br />
verso i clienti o ad<strong>di</strong>rittura verso altri applicativi informatici che lo richiedano è uno <strong>degli</strong> elementi <strong>di</strong><br />
sfida (e <strong>di</strong> sopravvivenza) che il mondo della creazione <strong>di</strong> artefatti software sta ponendo a se stesso<br />
e al proprio bacino <strong>di</strong> utenza.<br />
Il corso ha quin<strong>di</strong> come obiettivo finale l’acquisizione <strong>di</strong> competenze <strong>di</strong> programmazione nel vasto<br />
ambito della creazione <strong>di</strong> applicativi <strong>di</strong>stribuiti con logica multi-tier. Per la sperimentazione <strong>di</strong> tali<br />
approcci e dei cambiamenti nella creazione <strong>di</strong> software che questo ha comportato, si è scelto <strong>di</strong><br />
233