UDA 1 – Architettura di rete e formati per lo scambio
dei dati
1. Sistemi Distribuiti
● Definizione: Insieme di computer autonomi collegati in rete che collaborano per
raggiungere un obiettivo comune.
● Benefici:
○ Scalabilità
○ Affidabilità
○ Condivisione di risorse
○ Flessibilità
● Svantaggi:
○ Complessità di gestione
○ Problemi di sicurezza
○ Sincronizzazione e coerenza dei dati
● Classificazione:
○ Basata su hardware: SISD, SIMD, MISD, MIMD
○ Basata su architettura: Cluster, Grid
2. Evoluzione delle architetture distribuite
● Da SISD a Cluster PC
○ SISD: elaborazione sequenziale
○ SIMD: elaborazione parallela con dati multipli
○ MISD: elaborazione con più istruzioni sugli stessi dati (raro)
○ MIMD: processori indipendenti (es. multiprocessori)
○ Cluster: gruppo di PC coordinati
○ Grid: rete geografica distribuita di risorse
● Modelli architetturali:
○ Client-Server
○ Web Centric
○ Cooperativa
○ Architettura a livelli
La comunicazione nel Web
1. HTTP e modello Client-Server
● Il client invia una richiesta, il server risponde con una risposta.
● Client: chi effettua la richiesta (es. browser)
● Server: chi riceve ed elabora la richiesta
2. Conversazione Client-Server
● Composta da scambio di messaggi HTTP
● Include:
○ Metodo (GET, POST, ecc.)
○ Header (info su richiesta/risposta)
○ Corpo (body) opzionale
3. Architetture a strati
● 1-tier: tutto su un unico sistema
● 2-tier: separazione tra client e server (es. database)
● 3-tier: separazione in tre componenti (client, applicazione, database)
4. Tipi di connessione
● Connessione persistente vs. non persistente
● Sincrona vs. asincrona
UDA 2 – Il Socket
● Socket: interfaccia per la comunicazione tra processi (tipicamente via rete)
● Porte di comunicazione: identificano il servizio applicativo (es. 80 per HTTP)
● Protocolli: TCP (affidabile), UDP (non affidabile, più veloce)
UDA 3 – Applicazioni lato server in PHP e AJAX
● Comunicazione Client-Server con AJAX
○ Permette richieste HTTP asincrone
○ Aggiorna parti della pagina senza ricaricarla interamente
UDA 4 – Applicazioni lato server (CENNI)
● Modello a codice separato: separazione tra logica e presentazione
● Tecnologie:
○ CGI: primo metodo per eseguire codice server-side
○ Servlet (Java): classi Java eseguite su server
■ Struttura: init, service, destroy
■ Richiede un Web Container
● Servlet e Database:
○ Connessione tramite JDBC (Java Database Connectivity)
○ Driver JDBC (tipi 1–4)
○ JDBC standalone: connessione diretta a DB da programma Java
UDA 5 – Web Service e API
● Uso di API pubbliche (es. meteo) tramite chiamate HTTP
● Creazione API personalizzate con PHP + MySQL
● JavaScript per:
○ Costruzione componenti HTML dinamici
○ Autocomplete e richieste HTTP asincrone