Riassunti
Appunti universitari in formato Markdown da Obsidian.
Anatomia di un sistema informativo sul Web
download Scarica MDUn Sistema Informativo sul Web (SIW) è un'applicazione che sfrutta l'infrastruttura del Web per fornire servizi e informazioni agli utenti.
Web vs Internet
È importante distinguere i due termini:
- Internet: È l'infrastruttura di rete globale (hardware, router, cavi, protocolli TCP/IP).
- Web (WWW): È uno dei tanti servizi che girano sopra Internet, basato su documenti ipertestuali (HTML) e il protocollo HTTP.
Pilastri del Web (Tim Berners-Lee)
- URL: Identificatore univoco per ogni risorsa.
- HTTP: Protocollo di comunicazione tra client e server.
- HTML: Linguaggio per descrivere il contenuto.
- Web Server: Software che risponde alle richieste.
- Browser: Software per visualizzare i contenuti.
Architettura Client-Server
Il funzionamento del Web si basa su un'interazione continua:
- Il Client (Browser) invia una richiesta HTTP tramite un URL.
- Il Server riceve la richiesta, la elabora e invia una risposta (es. un file HTML).
- Il Client interpreta la risposta e la mostra all'utente.
Architettura a 3 Livelli (3-Tier)
I sistemi moderni non sono monoliti, ma divisi in tre strati logici:
- Presentation Tier (Front-end):
- Si occupa dell'interfaccia utente.
- Tecnologie: HTML, CSS, JavaScript.
- Software: Web Server (es. Apache, Nginx).
- Logic Tier (Back-end):
- Contiene la logica applicativa (il "cervello"). Genera contenuti dinamici.
- Tecnologie: Java (Servlet), Python, Node.js.
- Software: Application Server (es. Tomcat).
- Persistence Tier (Data):
- Gestisce il salvataggio permanente dei dati.
- Tecnologie: SQL, RDBMS (es. PostgreSQL, MySQL).
Tecnologie Web Fondamentali
Un sito web moderno nasce dall'unione di tre linguaggi:
- HTML: Definisce la struttura (cosa c'è nella pagina).
- CSS: Definisce lo stile (come appare).
- JavaScript: Definisce il comportamento (cosa succede al click).
Concetti di Design e Dati
Pattern MVC (Model-View-Controller)
Dividere l'app in tre parti: Model (i dati), View (l'interfaccia), Controller (la logica che li unisce).
CRUD
Le 4 operazioni fondamentali su ogni database:
- Create (INSERT)
- Retrieve (SELECT)
- Update (UPDATE)
- Delete (DELETE)
ORM (Object Relational Mapping)
Librerie che permettono di gestire i dati del database come se fossero normali oggetti Java, automatizzando la scrittura del codice SQL noioso e ripetitivo.