Architettura Client / Server

Client / Server

In informatica il termine sistema client-server  (letteralmente cliente-serviente) indica un’architettura di rete nella quale genericamente un computer client o terminale si connette ad un server per la fruizione di un certo servizio, quale ad esempio la condivisione di una certa risorsa hardware/software con altri client, appoggiandosi alla sottostante architettura protocollare.

Più semplicemente, i sistemi client/server sono un’evoluzione dei sistemi basati sulla condivisione semplice delle risorse: la presenza di un server permette ad un certo numero di client di condividerne le risorse, lasciando che sia il server a gestire gli accessi alle risorse per evitare conflitti di utilizzazione tipici dei primi sistemi informatici.

Esempi di sistemi client/server:

Che cos’è la tecnologia lato server?

Una tecnologia lato server è usata nello sviluppo di siti con elementi dinamici e nelle applicazioni web; si basa sull’uso di script che vengono eseguiti dal web server con l’aiuto dei linguaggi di scripting più adatti, quando un client richiede i contenuti corrispondenti. Spesso il compito degli script è quello di raccogliere i giusti dati da un database ed inserirli nel sito web. L’utente vi accede tramite pagine HTML, ma il codice sorgente degli script rimane completamente nascosto e non è quindi visionabile.

L’uso di questi script lato server presuppone che il client continui a inviare altre richieste al web server per far arrivare agli utenti le nuove informazioni modificate. Ciò significa da una parte un sovraccarico delle capacità del server, cosa che si ripercuote sui tempi di risposta del web server, e dall’altra prevede una connessione esistente al server, indispensabile per far visualizzare l’offerta web.

Agli albori del World Wide Web gli script lato server avvenivano quasi esclusivamente quando gli sviluppatori scrivevano i programmi in C ed eseguivano script in Perl o dalla riga di comando. Queste applicazioni venivano eseguite ed interpretate dal sistema operativo del server, in modo da poter trasmettere il risultato del web server tramite una Common Gateway Interface (CGI) al browser richiedente. Molti web server moderni possono nel frattempo eseguire gli script direttamente, ad esempio grazie ad appositi moduli. Oggigiorno il linguaggio di scripting lato server più utilizzato è PHP, cioè il linguaggio di programmazione rilasciato nel 1995 e che si basa molto su C e Perl.

Che cos’è la tecnologia lato client?

Anche la tecnologia lato client viene utilizzata dagli sviluppatori web per realizzare progetti con contenuti dinamici. A differenza della variante lato server, gli script non vengono però programmati dal server, bensì elaborati ed eseguiti dal client richiedente. Per questo si integrano gli script nel documento HTML o XHTML o si scrivono in un file separato, che si collega al documento. Se l’utente apre una pagina o un’applicazione web con uno script lato client, il web server invia un documento HTML e uno script al browser, che lo esegue e presenta il risultato finale. Gli script lato client possono inoltre contenere istruzioni concrete per il browser, indicando ad esempio come devono reagire a precise azioni dell’utente o ad un click su un pulsante. Spesso non è necessario che il client stabilisca un nuovo contatto con il web server.

Visto che gli script vengono eseguiti nel browser dell’utente, è possibile visionare il codice sorgente, al contrario di quanto avviene per gli script lato server. L’interpretazione di questi script presuppone che il linguaggio di programmazione corrispondente venga capito dal browser. Dato che anche finestre pop-up e strumenti di tracking si basano su script lato client e ne influenzano così i tempi di caricamento, ci sono diverse estensioni per il browser che bloccano questi script.

Il linguaggio di scripting lato client più importante è JavaScript, che è stato sviluppato dal predecessore di Mozilla, Netscape, e rilasciato nel 1995 con la versione precedente del browser Navigator 2.0, conosciuto all’epoca con il nome di LiveScript. Si è diffuso velocemente ed è diventato così un linguaggio di scripting universale per tutti i browser comuni.

Da citare è anche Shockwave Flash (SWF), nonostante presenti delle limitazioni significative: il linguaggio orientato agli oggetti è un componente importante del Flash Player di Adobe, che è stato per molto tempo il software principale per tutti i video nel World Wide Web. Per via di diverse falle di sicurezza e dello sviluppo di nuove tecniche, come HTML5, i video e le animazioni Flash, un tempo molto diffuse, sono ormai sempre meno utilizzate. Agli inizi del web erano anche molto popolari tecnologie quali Microsoft Silverlight e Java applet.

Script lato client vs. script lato server

Il luogo di esecuzione degli script ha un’influenza notevole sulla struttura dei progetti web. Se la maggior parte degli script vengono trasmessi dal browser, il sito o l’applicazione web saranno più “leggeri” per il server, visto che non è responsabile della loro esecuzione. Così le risorse server vengono notevolmente alleggerite, anche se si possono verificare riduzioni della performance per gli utenti che vi accedono.

Basandosi solo su JavaScript, che è una tecnologia lato client, gli sviluppatori devono fare i conti con una maggiore complessità perché molti meccanismi di framework efficienti, come ASP.NET, devono riprodurre il modello MVC.  Altri problemi nascono dal fatto che, sempre nel caso di script lato client, si viene informati che il rispettivo browser supporta i linguaggi di scripting utilizzati con tutte le funzionalità e che l’utente non usa estensioni che ne bloccano l’uso.

Per evitare di far sovraccaricare il client o il server, dovreste cercare di trovare un buon compromesso tra script lato server e lato client e preoccuparvi di attuare misure aggiuntive, come il caching dei contenuti statici e utilizzare tecnologie moderne come AJAX, per fare in modo che il vostro progetto web si carichi il più velocemente possibile.

L’ultima tecnologia citata è un’abbreviazione per “Asynchronous JavaScript and XML“, che descrive la possibilità della trasmissione dei dati asincrona tra client e server. Senza dover caricare completamente la pagina ogni volta, il web server può reagire alle richieste e agli input dell’utente quasi in tempo reale e scambiare così i dati con il browser. Un classico esempio per la messa in atto della tecnica AJAX sono i Google Suggests, cioè i suggerimenti di ricerca di Google, che compaiono automaticamente sul motore di ricerca mentre si scrive una parola chiave.

Fonte: www.wikipedia.org

Leave a Reply