Qual è la differenza tra un server e un database?
Sono abbastanza sicuro che il tuo riferimento è a un'architettura di applicazioni web a 3 livelli. Ecco qualcosa di pittorico :
Qualche spiegazione~
Client-tier:
Implementa il "look and feel" di un'applicazione. È responsabile della presentazione dei dati, della ricezione degli eventi utente e del controllo dell'interfaccia utente. Questo è ciò con cui l'utente interagisce. Da qui il nome. Potrebbe essere un sito web come Quora o un'applicazione Android.
Application Tier:
Questo livello implementa la logica di business delle applicazioni. Sarebbe ospitato/dispiegato su una macchina, diciamo in un garage di un ragazzo nella Silicon Valley. Può essere alimentato da un Java Application Server. Per esempio si può usare Spring Framework per fare questo. Si crea un jar e poi si distribuisce. Ci sono diversi sotto-strati all'interno dell'application tier.
- Control Layer è il livello di interfaccia tra presentation tier e application tier. Controlla dove colpire, quale logica deve essere eseguita, quale pezzo di codice fondamentalmente nel livello di logica (servizio) deve essere eseguito. Quindi la richiesta incontrerebbe prima questo livello. Da qui andremo al livello di servizio.
- Il livello di servizio consiste nella "business logic" che dovrebbe essere sempre indipendente al 100% dal database usato per la persistenza dei dati. Generalmente si recuperano dati dal transaction layer, si opera su quegli oggetti secondo la logica/algoritmo che il business richiede e si restituisce il risultato al control layer.
- Transaction Layer solitamente implementa processi di business che possono coinvolgere molti oggetti di business. Nell'architettura J2EE, i session beans sono comunemente usati per implementare il transaction layer.
- Data Access Object (DAO) Layer è l'interfaccia tra l'application tier e il persistence tier. Oltre ai metodi per "creare", "recuperare", "aggiornare" e "rimuovere" un oggetto business dal database, gli oggetti DAO implementano anche altri metodi specifici del business. Anche con JDBC, gli oggetti DAO possono non essere indipendenti al 100% dal database.
Data Tier:
Questo è il livello che gestisce la persistenza delle informazioni dell'applicazione. Di solito è alimentato da un server di database relazionale (Oracle o MS SQLServer). Immaginate che sia un server fisico che risiede a NYC dove avete installato il server MySql. Questa macchina è fisicamente diversa da un server di applicazioni (visualizzazione molto molto semplice!) I database non relazionali comunemente usati sono mongodb, redis ecc. Per i database relazionali è qui che avrete il vostro database con tutte le tabelle necessarie.
Ma se questo non è il caso allora, per applicazioni strettamente accoppiate, l'arco a 2 livelli è qualcosa del genere:
qui, diciamo che abbiamo solo un server fisico a Londra, che esegue sia l'applicazione che il server del database. Cioè, uno avrebbe installato il server MySql sulla macchina e sulla stessa macchina avrebbe distribuito il jar dell'applicazione.
Articoli simili
- Qual è la differenza tra un database tradizionale e un database moderno?
- Qual è la differenza tra uno sviluppatore di database e un amministratore di database?
- Qual è la differenza tra un amministratore di sistema, un amministratore di server e un amministratore di database?
- Qual è la differenza tra un server di posta e un server SMTP?