|
Appunti universita |
|
Visite: 2788 | Gradito: | [ Picolo appunti ] |
Leggi anche appunti:Esercizi di Job CostingEsercizi di Job Costing 1 La schematizzazione del problema 1.1 Dati Contabilità dei lavoriContabilità dei lavori Generalità Una volta esaurita la Architetture client/serverArchitetture client/server Il Client/Server, che sta diventando |
Architetture client/server
Il Client/Server, che sta diventando il modello di riferimento per il networking e le applicazioni di database a qualunque livello, si contrappone come filosofia e come struttura al Mainframe.
Il Mainframe esegue tutte le operazioni sui dati e usa terminali "stupidi" come unità di visualizzazione e inserimento dati. Tutte le operazioni vengono svolte dal mainframe, mentre il terminale si limita ad effettuare fisicamente le operazioni di I/O.
Nel modello Client Server invece, il client può eseguire parte delle precedenti operazioni, quali la visualizzazione e la formattazione dei dati. Con questa "suddivisione" delle operazioni il Client ha un aumento di prestazioni, essendo sottoposto ad un carico di lavoro maggiore. Una soluzione Client Server offre un notevole risparmio economico ed inoltre si ha una maggior flessibilità nei confronti delle esigenze di mercato, soprattutto per quanto riguarda i prodotti software.
L'affermazione di questo modello è legata inoltre ad altri fattori quali:
Il server non è più uno strumento in cui sono centralizzate le risorse, bensì è uno strumento cui demandare buona parte dell'elaborazione, ma non tutta. Inoltre in un sistema possono essere presenti più server che concorrono all'elaborazione.
Si parla di architettura Client Server tutte le volte che, in un sistema, un'entità offre un servizio, (il server), ed un'altra (il client) vi accede secondo una serie di regole, usufruendone. Un sistema informativo Client/Server rende oggi possibile una rappresentazione molto più diretta dei processi aziendali di quanto non consentissero sistemi basati su architetture esclusivamente centralizzate o distribuite. Dal punto di vista della progettazione e dello sviluppo delle applicazioni questa tendenza si traduce nella realizzazione di ambienti modulari, che separano il lato front end, per i sistemi client, da quello, o quelli, back end per i sistemi server. Sul lato client sono utilizzate interfacce grafiche e intuitive, ambienti di sviluppo orientati agli oggetti e guidati agli eventi; mentre sul lato server vengono utilizzati sistemi tecnologicamente raffinati, quali gestori di basi di dati, sistemi di accounting e gestione utenti. Esistono due modalità di gestire il software e i servizi sulle reti locali: sistemi client/server e sistemi peer to peer. Anche Internet offre un esempio di client/server.
Un computer viene adibito a "server" mentre gli altri elaboratori vengono chiamati "client" e su ogni macchina viene installato un pezzo di software di sistema (NOS - network operating system) a seconda del ruolo che riveste. Il server in genere è una macchina potente dal punto di vista elaborativo (CPU) e molto dotata per quanto riguarda la memoria centrale e quella di massa.
La logica del client/server è quella di far risiedere sul server vari software (di sistemi e applicativi) e i dati, lasciando libera la memoria di massa dei client. Quando questi hanno necessità di utilizzare un'applicazione ne fanno richiesta al server che la attiverà. Il software richiesto potrà girare sul server utilizzandone la CPU, e il nodo client da questo punto di vista verrà usato quasi come un terminale. Un'altra modalità è invece quella di trasportare il software applicativo da usare sul client facendolo eseguire in locale, e usando il server solo come deposito software e di dati. L'estremizzazione di quest'idea è quella su cui si basa il network computer.
Spesso al server è collegata una stampante che può essere condivisa dai vari client in modo da centralizzare la funzione di stampa riducendo i costi. Quando il server viene usato esclusivamente per una di queste due funzioni prende il nome rispettivamente di "file server" e "print server".
La gestione dei dati in un'architettura di tipo Client/Server assume un ruolo di grande rilievo e da questo punto di vista i DBMS relazionali basati sul linguaggio SQL rappresentano la risposta di mercato alle necessità dell'utente di disporre di servizi di accesso ai dati in rete. La separazione dei dati dall'applicazione, elemento essenziale dei sistemi per la gestione dei database, diviene nel Client/Server talmente forte da separare completamente i due ambienti e l'indipendenza dal sistema di gestione dati diviene così elevata nel momento in cui si affida ad un linguaggio comune di alto livello come SQL, per mascherare tutti i livelli sottostanti, sia hardware e software.
In basi di dati i parametri che si scontrano sempre sono: velocità e sicurezza. Un DBMS è disegnato per risolvere entrambe queste esigenze con efficienza, anche se spesso possono nascere incompatibilità. La gestione della sicurezza porta a un notevole incremento dalla complessità di un sistema di elaborazione dati riducendone l'efficienza in termini di tempi di risposta. Le problematiche della sicurezza possono essere viste sotto due aspetti principali: privatezza e integrità.
Il problema della privatezza dei dati contenuti in database è molto importante. È indispensabile garantire il corretto e veloce reperimento delle informazioni solo alle persone autorizzate impedendo l'accesso ad altri non autorizzati. Un intervento colposo riguarda un'azione effettuata erroneamente, ma non con l'intento di nuocere. Un intervento doloso è invece diretto all'appropriazione o alla distruzione di tutte o parte delle informazioni registrate dal sistema.
Questo problema ha due aspetti:
L'insieme dei dati che formano un data base non sono statici, bensì dinamici ma le variazioni che subiscono nel tempo non devono compromettere la validità delle informazioni e la coerenza dei dati. L'integrità è minacciata ogni qualvolta si verificano interventi di modifica dei dati, in particolare se l'accesso ai dati è coerente.
L'integrità di un database presenta due aspetti: l'integrità logica e quella fisica.
L'integrità logica consiste nella necessità di preservare la struttura logica della banca dati ovvero le relazioni esistenti fra i dati.
L'integrità fisica invece consiste nel proteggere la banca dati da tutti i possibili danneggiamenti accidentali in modo da essere in grado in qualunque momento di effettuare una completa ricostruzione del database anche in caso di una totale distruzione.
Appunti su: appunti client server, |