| | | corso | | | |
Ingegneria del Software: laboratorio di applicazioni Internet D
(Corso di Diploma in Informatica)
Codice: | 5I024 | Crediti: | 6 | Semestre: | 2 | Sigla: | ISI | |
Docente
Tito Flagella
![Home Page di Tito Flagella](/Didattica/img/home_c.gif)
Descrizione
La rapidissima diffusione dei browser per la consultazione di siti Web, ha avuto un importante effetto collaterale sul modo di progettare
e realizzare le applicazioni informatiche.
Il modello client-server si e` infatti dimostrato inadeguato per la realizzazione delle nuove applicazioni su Internet, i cui requisiti
principali sono:
- numero illimitato di potenziali utenti;
- interfaccie utente accessibili via browser;
- il software non puo` essere aggiornato presso le macchine desktop ma deve essere aggiornato presso il Server.
Il tentativo di realizzare tali requisiti utilizzando il tradizionale modello client-server e` fallito per i seguenti motivi:
- nel modello client-server, ad ogni aggiornamento del server corrisponde in generale un aggiornamento del client; quest'approccio e` impraticabile quando non si ha il controllo delle stazioni client;
- il client contiene non solo la parte di presentazione dei dati, ma anche la parte di logica della applicazione (es: accesso a database,
implementazione degli algoritmi richiesti dall'applicazione, etc.); la dimensione del client (fat client) e` pertanto incompatibile con
approcci che prevedano il download del client a run-time;
- il modello e` poco scalabile al crescere degli utenti; il server e` infatti tipicamente uno solo, candidato a diventare un collo di
bottiglia per l'applicazione.
Negli ultimi anni, contemporaneamente anche se indipendentemente dal WWW, si sono diffuse altre due tecnologie chiave: il linguaggio
Java, progettato da Sun Microsystem e l'architettura CORBA, progettata da Open Management Group.
L'uso combinato di queste tecnologie (WWW, CORBA e Java) consente oggi di realizzare un nuovo tipo di applicazioni,
particolarmente adatte ad Internet, solitamente composte dei seguenti componenti:
- thin client: clienti molto leggeri, realizzati come applet java e finalizzati alla gestione del solo aspetto di interazione con l'utente;
- application server: server dedicato a realizzare la logica della applicazione; riceve le richieste dai thin client e si occupa di
processarle, interagendo con un certo numero di server specializzati su signole funzioni dell'applicazione;
- Data Base Management System (DBMS): l'accesso al DBMS avviene dai server, anziche` dai client come nel modello Client
Server;
- comunicazioni tra i componenti (middleware) gestite via CORBA.
Questo nuovo modello soddisfa i requisiti principali che una applicazione Internet deve avere, in quanto consente di:
- ottenere una migliore scalabilita` distribuendo l'applicazione sul numero di server che si rendera` necessario;
- ridurre al minimo le dimensioni dei client, rendendo praticabile l'approccio Java che richiede di scaricare l'applet via Internet a
run-time;
- interfacciare al meglio sistemi gia` esistenti, basandosi sull'approccio CORBA, basato sul linguaggio IDL, indipendente dai
linguaggi di programmazione utilizzati per la realizzazione di ogni componente dell'applicazione.
Il corso, dopo aver descritto l'impatto che Internet sta avendo sulla progettazione di applicazioni distribuite, si focalizzera` sugli
strumenti necessari per la realizzazione di applicazioni di questo tipo, mostrando come l'uso di CORBA renda possibile integrare in
un'unica applicazione servizi scritti in linguaggi di programmazione completamente diversi tra loro, come C, C++, Java o Cobol.
Programma
- L'evoluzione delle applicazioni Informatiche: dai mainframe al client/server a Internet (2 ore).
- I Problemi nella costruzione di applicazioni distribuite: dipendenza dal linguaggio e dipendenza dall'architettura (2 ore).
- I limiti delle soluzioni tradizionali: socket/XDR/RPC. Accennno alle nuove soluzioni: Remot Method Invocation di Java,
architetture DCOM e CORBA (4 ore).
- Approfondimenti sull'architettura CORBA (8 ore)
- L'attivazione di metodi in CORBA usando Static Invocation Interface (SII)
- Dynamic Invocation Interface (DII)
- Introduzione al linguaggio IDL;
- Cenni al binding di IDL per i linguaggi C, C++, Java.
- L'Interoperabilita` in CORBA: i protocolli General Inter ORB Protocol (GIOP) e Internet Inter ORB Protocol (IIOP).
- Presentazione dei componenti essenziali di una applicazione Internet:
- thin client in Java (2 ore);
- 'uso di IDL per l'integrazione dei thin client con "application server" scritti in altri linguaggi (4 ore);
- l'uso di IP multicast per la realizzazione di tecnologia push (2 ore);
- i componenti per la gestione delle transazioni (CORBA Event Manager e TP Monitors) (4 ore);
- l'interazione con i DBMS (2 ore).
- Cenni ai problemi della sicurezza nelle Applicazioni Internet (Signed Applet, Tunnelling di IIOP su HTTP) (4 ore).
- Progettazione dell'applicazione Internet da realizzare come progetto d'esame (6 ore).
Ore lezione: | 25 | Ore esercitazione: | 15 | | | |
Modalità di esame
Scritto e orale