01-WebDB-Arch

01-WebDB-Arch

SIDE NOTES
Architettura (semplificata)di un DBMS
notion image
notion image
  1. user usufruisce del DATABASE SYSTEM fatto di servers non necessariamente dislocati tutti nello stessa macchina. Specificatamente crea e manda delle queries a partire dal programma sul suo computer (client)
    1. lo user manda comandi SQL (i quali contengono operazioni DML e DDL)
  1. le interrogazioni sono processate dal DBMS Software il quale per elaborarle, comunica con i server contenenti i database in grado di fornire dati e metadati (credenziali utenti, descrizioni relative ai dati) per rispondere alle queries
schema elementare molto basico)
notion image
  • applicazione web client → web server → data access API → DBMS(ognuno ha il suo protocollo di esecuzione) → risposta
    • la risposta, nel caso comune di pagine dinamiche, oltre al semplice trasferimento di informazioni, contiene uno script
APPROFONDIMENTO: Node.js è il ”browser” per il runtime lato client
notion image
  • JavaScript è un linguaggio di programmazione
  • Node.js è un ambiente di runtime che permette di eseguire JavaScript al di fuori di un browser (client).
    • Nello stesso modo in cui posso fare uno script per la stampa di una stringa e visualizzarla su chrome del client, posso codificare lo script per la stampa su Node.js e visualizzarla nel server
    • notion image
  • Non ha bisogno di Apache come server web esterno , perché include una libreria HTTP integrata.
    • notion image
      notion image
  • Asincrono: permette di gestire operazioni di I/O (lettura/scrittura file, accesso a database, richieste di rete) senza bloccare l’esecuzione del codice. Agiorna e pagine parzialmente
    •  
 
MAIN NOTES
Parte prima: il modello WEB client-server (2 LIVELLI)
notion image

notion image
Il web server accede al al Database Management System (DBMS) attraverso API specifiche. Tra le più comuni troviamo:
  • ODBC (Open Database Connectivity): uno standard che permette di interfacciarsi con diversi DBMS in modo indipendente dal sistema operativo e dal linguaggio di programmazione. Compatibile con diversi DBMS.
  • JDBC (Java Database Connectivity): una versione specifica di ODBC pensata per applicazioni scritte in Java.

Processo di esecuzione di una query

  1. Quando viene eseguita una query, è necessario determinare l’indirizzo IP del server che ospita il DBMS, proprio come avviene con un normale link HTTP.
    1. Il client deve poi individuare la porta (sul server) corretta per accedere al DBMS. PK la porta? Se un server esegue più istanze di DBMS diversi tra loro, la porta mi indica quale DBMS utilizzare
  1. Alcune porte standard:
      • 80 e 443: usate per HTTP e HTTPS (non per DBMS).

Livelli di comunicazione

  • Ogni DBMS, quando è interrogato dal server, utilizza un proprio protocollo di basso livello, NON SQL (Structured Query Language) pk usato per eseguire interrogazioni di alto livello, per mandare i dati al server
  • Caricamento Client-Server di una pagina statica nel Web
Parte seconda: le architetture WEB-DB multi-tier (3 LIVELLI)
notion image
  • L'architettura a due livelli (2-tier) differisce dalla 3-tier principalmente per l'assenza di un livello intermedio tra il client e il database.
notion image
 
notion image
  • Per gestire migliaia o milioni di richieste, si usano più computer coinvolti nella gestione parallela di uno stesso servizio: app1 e app2 ad esempio. Per ciascuna funziona si usano più computer
  • load balancer: ha un solo indirizzo e deve smistare le richieste. Se mi collego ad un sito/servizio, il sito si collega a più computer smistati da questo dispositivo
Parte terza: Web application e DBMS
notion image
notion image
Con Node.js le queries vengono processate da threads, e l’accesso al databese avviene in asincronia, sempre per mezzo di threads
  • data ascess API
Parte quarta: Mobile app e DBMS
notion image
notion image