Come configurare smartphone e PC. Portale informativo
  • casa
  • notizia
  • 5 principali servizi di tecnologia Internet client server. Tecnologia client-server

5 principali servizi di tecnologia Internet client server. Tecnologia client-server

Utilizzo della tecnologia client-server

Nel tempo, il modello poco funzionale del file server per reti locali (FS) è stato sostituito da un modello emergente dopo l'altro della struttura “Client Server” (RDA, DBS e AS).

La tecnologia client-server, che occupava la parte inferiore del database, è diventata la tecnologia principale di Internet globale. Inoltre, a seguito del trasferimento delle idee di Internet nella sfera dei sistemi aziendali, è nata la tecnologia Intranet. A differenza della tecnologia "Client-Server", questa tecnologia è diretta all'informazione nella sua forma finale per il consumo e non ai dati. I sistemi informatici, che sono costruiti sulla base della Intranet, includono server di informazioni centrali e alcuni componenti per presentare le informazioni all'ultimo utente (browser o navigatori). L'azione tra il server e il client nell'Intranet avviene tramite tecnologie web.

Nei tempi moderni, la tecnologia Client-Server è diventata molto diffusa, ma questa stessa tecnologia non ha ricette universali. Fornisce solo un giudizio generale su come dovrebbe essere creato l'attuale sistema informativo di distribuzione. Inoltre, l'implementazione di questa tecnologia in alcuni prodotti software e persino in tipi di software è riconosciuta in modo molto significativo.

Architettura classica client-server a due livelli

Di norma, i componenti di rete non hanno uguali diritti: alcuni hanno accesso alle risorse (ad esempio: sistema di gestione del database, processore, stampante, file system, ecc.), altri hanno la possibilità di accedere a queste risorse. tecnologia server del sistema operativo

La tecnologia "Client - server" è un'architettura di un pacchetto software che distribuisce un programma applicativo in due parti logicamente diverse (server e client), che interagiscono secondo lo schema "richiesta - risposta" e risolvono i propri compiti specifici.

Il programma (o computer) che controlla e/o possiede alcune risorse è chiamato server di questa risorsa.

Un programma (computer o) che richiede e utilizza una risorsa è chiamato client di quella risorsa.

In questo caso, tali condizioni possono manifestarsi anche quando qualche unità di programma implementerà contemporaneamente le funzioni del server in relazione ad una unità e del client in relazione ad un'altra unità.

Il principio fondamentale della tecnologia Client-Server è quello di suddividere le funzioni dell'applicazione in almeno tre collegamenti:

Moduli interfaccia utente;

Questo gruppo è anche chiamato logica di presentazione. Con il suo aiuto, gli utenti possono interagire con le applicazioni. Indipendentemente dalle caratteristiche specifiche della logica di presentazione (interfaccia a riga di comando, interfacce intermedie, interfacce utente grafiche complesse), il suo scopo è fornire un mezzo per uno scambio di informazioni più efficiente tra il sistema informativo e l'utente.

Moduli di archiviazione dati;

Questo gruppo è anche chiamato logica aziendale. La logica aziendale trova esattamente per cosa è necessaria un'applicazione (ad esempio, le funzioni dell'applicazione inerenti al dominio fornito). La separazione di un'applicazione lungo i limiti del programma fornisce una base naturale per la distribuzione di un'applicazione su due o più computer.

Moduli elaborazione dati (funzioni di gestione delle risorse);

Questo gruppo è anche chiamato algoritmi di accesso ai dati logici o semplicemente accesso ai dati. Gli algoritmi per l'immissione dei dati sono considerati come un'interfaccia specifica per un'applicazione specifica a un dispositivo per l'archiviazione stabile dei dati come un DBMS o un file system. Con l'ausilio di moduli di elaborazione dati viene organizzata un'interfaccia specifica per un'applicazione DBMS. Utilizzando l'interfaccia, un'applicazione può gestire le connessioni e le query al database (traducendo le query specifiche dell'applicazione in SQL, recuperando i risultati e traducendo quei risultati in strutture di dati specifiche per l'applicazione). Ciascuno dei collegamenti elencati può essere realizzato indipendentemente da molti altri. Ad esempio, senza modificare i programmi che vengono utilizzati per elaborare e memorizzare i dati, è possibile modificare l'interfaccia utente in modo che gli stessi dati vengano visualizzati sotto forma di tabelle, istogrammi o grafici. Le applicazioni più semplici sono spesso in grado di assemblare tutti e tre i collegamenti in un unico programma e questa separazione segue i confini funzionali.

In accordo con la separazione delle funzioni, in ciascuna applicazione si distinguono i seguenti componenti:

  • - componente di presentazione dei dati;
  • - componente applicativa;
  • - componente di gestione delle risorse.

Il client-server nell'architettura classica deve distribuire le tre parti principali dell'applicazione in 2 moduli fisici. In genere, il componente dell'applicazione si trova sul server (ad esempio, sul server del database), il componente di presentazione dei dati è sul lato client e il componente di gestione delle risorse è distribuito tra il server e le parti client. Questo è il principale svantaggio della classica architettura a due livelli.

In un'architettura a due livelli, quando si separano gli algoritmi di elaborazione dei dati, gli sviluppatori devono disporre di informazioni complete sulle ultime modifiche apportate al sistema e comprendere queste modifiche, il che crea non poche difficoltà nello sviluppo di sistemi client-server, il loro manutenzione e installazione, poiché è necessario dedicare grandi sforzi per coordinare le azioni di diversi gruppi di specialisti. Nelle azioni degli sviluppatori sorgono spesso contraddizioni e questo rallenta lo sviluppo del sistema e ti costringe a modificare elementi già pronti e comprovati.

Per evitare incongruenze tra i diversi elementi dell'architettura, abbiamo creato due modifiche dell'architettura client-server a due livelli: "Fat client" ("Thin server") e "Thin client" ("Fat server").

In questa architettura, gli sviluppatori hanno provato a eseguire l'elaborazione dei dati su una delle due parti fisiche, sul lato client ("Thick client") o sul server ("Thin client").

Ogni approccio presenta svantaggi significativi. Nella prima situazione, la rete è ingiustificatamente sovraccaricata, perché su di essa vengono trasmessi dati non elaborati, ovvero ridondanti. Inoltre, il supporto del sistema e la sua modifica diventano più complicati, perché la correzione di un errore o la sostituzione dell'algoritmo di calcolo richiede una sostituzione completa simultanea di tutti i programmi di interfaccia, se non viene eseguita una sostituzione completa, potrebbero verificarsi incoerenze o errori di dati. Se tutta l'elaborazione delle informazioni viene eseguita sul server, sorge il problema della descrizione delle procedure integrate e del loro debug. Un sistema con elaborazione delle informazioni su un server è assolutamente impossibile da trasferire su un'altra piattaforma (SO), questo è un grave inconveniente.

Se crei un'architettura classica a due livelli "Client-Server", devi conoscere i seguenti fatti:

L'architettura Thick Server è simile all'architettura Thin Client

Invio di una richiesta dal client al server, elaborazione della richiesta da parte del server e passaggio del risultato al client. Tuttavia, le architetture presentano i seguenti svantaggi:

  • - l'implementazione diventa più complicata, poiché linguaggi come SQL non sono adatti allo sviluppo di tale software e non esistono buoni strumenti di debug;
  • - le prestazioni dei programmi scritti in linguaggi come SQL sono molto basse rispetto a quelli creati in altri linguaggi, cosa più importante per i sistemi complessi;
  • - i programmi scritti in linguaggi DBMS, di regola, funzionano in parte in modo non molto affidabile; un errore in essi può portare al fallimento dell'intero server di database;
  • - i programmi risultanti sono completamente non portabili su altre piattaforme e sistemi.
  • - l'architettura "Thick client" è simile all'architettura "Thin server"

L'elaborazione della richiesta viene eseguita sul lato client, ovvero tutti i dati grezzi dal server vengono trasferiti al client. In questo caso le architetture hanno lati negativi:

  • - l'aggiornamento del software diventa più complicato, perché deve essere sostituito contemporaneamente in tutto il sistema;
  • - la distribuzione dei poteri si complica, perché la differenziazione degli accessi avviene non per azioni, ma per tabelle;
  • - la rete è sovraccarica a causa del trasferimento di dati grezzi su di essa;
  • - protezione dei dati debole, poiché è difficile distribuire adeguatamente i poteri.

Per risolvere i problemi elencati è necessario utilizzare un'architettura client-server multilivello (tre o più livelli).

Modello a tre livelli .

Dalla metà degli anni '90 del secolo scorso, la popolarità degli specialisti è stata acquisita dall'architettura client-server a tre livelli, che ha diviso il sistema informativo per funzionalità in tre sezioni: logica di accesso ai dati, logica di presentazione e logica di business. A differenza dell'architettura a due livelli, l'architettura a tre livelli ha un livello aggiuntivo: un server applicativo progettato per implementare la logica di business, scaricando completamente il client che invia le richieste al middleware e massimizzando tutte le funzionalità dei server.

In un'architettura a tre livelli, il client, di regola, non è sovraccaricato di funzioni di elaborazione dati, ma svolge il suo ruolo principale come sistema per presentare le informazioni dal server delle applicazioni. Tale interfaccia può essere implementata utilizzando strumenti tecnologici Web standard: browser, CGI e Java. Ciò riduce il volume dei dati forniti tra il client e il server delle applicazioni, consentendo ai computer client di essere collegati anche su linee lente come le linee telefoniche. In quanto tale, il lato client può essere così semplice che nella maggior parte dei casi viene eseguito utilizzando un browser generico. Tuttavia, se devi ancora cambiarlo, questa procedura può essere implementata in modo rapido e indolore.

Un server delle applicazioni è un software che costituisce un livello intermedio tra il server e il client.

  • - Orientato al messaggio - brillanti rappresentanti di MQseries e JMS;
  • - Object Broker - brillanti rappresentanti di CORBA e DCOM;
  • - Basato su componenti: brillanti rappresentanti di .NET e EJB.

L'utilizzo di un server delle applicazioni offre molte più funzionalità, ad esempio, il carico sui computer client è ridotto, poiché il server delle applicazioni bilancia il carico e fornisce protezione contro i guasti. Poiché la logica di business è archiviata sul server delle applicazioni, qualsiasi modifica nei rapporti o nei calcoli non influirà in alcun modo sui programmi client.

Esistono pochi server applicativi di aziende così note come Sun, Oracle Microsystem, IBM, Borland e ognuno di essi differisce nell'insieme dei servizi forniti (non prenderò in considerazione le prestazioni in questo caso). Questi servizi semplificano la programmazione e l'implementazione di applicazioni a livello aziendale. In genere, il server delle applicazioni fornisce i seguenti servizi:

  • - WEB Server - il più delle volte include il più potente e popolare Apache;
  • - WEB Container: consente di eseguire JSP e servlet. Per Apache, questo è Tomcat;
  • - Agente CORBA: può fornire una directory distribuita per l'archiviazione di oggetti CORBA;
  • - Servizio di messaggistica - broker di messaggi;
  • - Servizio di transazione - già dal nome si evince che si tratta di un servizio di transazione;
  • - JDBC - driver per la connessione ai database, perché è l'application server che dovrà comunicare con i database e deve potersi connettere al database utilizzato nella tua azienda;
  • - Java Mail: questo servizio può fornire un servizio a SMTP;
  • - JMS (Java Messaging Service) - elaborazione di messaggi sincroni e asincroni;
  • - RMI (Remote Method Invocation) - chiamare le procedure remote.

I sistemi client / server multilivello possono essere facilmente tradotti in tecnologia Web: per fare ciò, è necessario sostituire la parte client con un browser specializzato o universale e il server delle applicazioni deve essere integrato con un server Web e programmi di chiamata di procedura server di piccole dimensioni . Per

Questi programmi possono essere sviluppati utilizzando sia la Common Gateway Interface (CGI) che la più moderna tecnologia Java.

In un sistema a tre livelli, le linee più veloci che richiedono costi minimi possono essere utilizzate come canali di comunicazione tra il server applicativo e il DBMS, poiché i server sono solitamente situati nella stessa stanza (sala server) e non sovraccaricano la rete a causa di il trasferimento di una grande quantità di informazioni.

Da tutto quanto sopra, ne consegue che l'architettura a due livelli è molto inferiore all'architettura a più livelli, a questo proposito, oggi viene utilizzata solo l'architettura client-server a più livelli, che riconosce tre modifiche: RDA, DBS e COME.

Vari modelli di tecnologia "Client-server"

La primissima tecnologia di base per le reti locali è stata modello di file server (FS)... A quel tempo, questa tecnologia era molto comune tra gli sviluppatori nazionali che utilizzavano sistemi come FoxPro, Clipper, Clarion, Paradox e così via.

Nel modello FS, le funzioni di tutti e 3 i componenti (componente di presentazione, componente dell'applicazione e componente di accesso alle risorse) sono combinate in un codice, che viene eseguito sul computer server (host). Non esiste alcun computer client in questa architettura e la visualizzazione e la presentazione dei dati viene eseguita utilizzando un computer o un terminale nell'ordine dell'emulazione del terminale. Le applicazioni sono solitamente scritte nel linguaggio di quarta generazione (4GL). Uno dei computer della rete è considerato un file server e fornisce ad altri computer servizi di elaborazione dei file. Opera sotto il controllo di un sistema operativo di rete e svolge un ruolo importante come componente di accesso alle risorse informative. Su altri PC della rete è in esecuzione un'applicazione, nei cui codici sono collegati il ​​componente dell'applicazione e il componente di presentazione.

La tecnologia di azione tra client e server è la seguente: la richiesta viene inviata al file server, che trasmette il blocco di dati richiesto al DBMS situato sul computer client. Tutta l'elaborazione viene eseguita sul terminale.

Un protocollo di scambio è un insieme di chiamate che forniscono a un'applicazione l'accesso al file system su un file server.

Gli aspetti positivi di questa tecnologia sono:

  • - facilità di sviluppo dell'applicazione;
  • - facilità di amministrazione e aggiornamenti software
  • - basso costo di equipaggiamento dei posti di lavoro (i terminali o computer economici con caratteristiche basse in modalità di emulazione terminale sono sempre più economici dei PC a tutti gli effetti).

Ma i vantaggi del modello FS superano i suoi svantaggi:

Nonostante la grande quantità di dati che viene inviata in rete, il tempo di risposta è critico, perché ogni carattere inserito dal client sul terminale deve essere trasmesso al server, elaborato dall'applicazione e restituito per essere visualizzato sullo schermo del terminale . Inoltre, c'è il problema della distribuzione del carico tra più computer.

  • - hardware del server costoso poiché tutti gli utenti ne condividono le risorse;
  • - mancanza di un'interfaccia grafica .

Grazie alla soluzione dei problemi insiti nella tecnologia "File - Server", è apparsa una tecnologia più evoluta, denominata "Client - Server".

Per i moderni DBMS, l'architettura client-server è diventata lo standard de facto. Se si presume che la tecnologia di rete progettata avrà un'architettura "client-server", ciò significa che i programmi applicativi implementati all'interno del suo framework avranno una natura distribuita, ovvero alcune delle funzioni dell'applicazione saranno implementate nel client programma, l'altro nel programma -server.

Le differenze nell'implementazione delle applicazioni all'interno della tecnologia Client-Server sono determinate da quattro fattori:

  • - quali tipi di software nei componenti logici;
  • - quali meccanismi software vengono utilizzati per implementare le funzioni dei componenti logici;
  • - come i componenti logici sono distribuiti dai computer in rete;
  • - quali meccanismi vengono utilizzati per collegare tra loro i componenti.

In base a ciò si distinguono tre approcci, ognuno dei quali è implementato nel corrispondente modello della tecnologia Client-Server:

  • - modello di accesso ai dati remoti (Remote Date Access - RDA);
  • - modello server database (DateBase Server - DBS);
  • - il modello dell'application server (Application Server - AS).

Un vantaggio significativo del modello RDA è l'ampia gamma di strumenti di sviluppo di applicazioni che forniscono la rapida formazione di applicazioni desktop che funzionano con DBMS orientati a SQL. In genere, gli strumenti supportano un'interfaccia utente grafica con un sistema operativo, nonché la generazione automatica del codice, in cui le funzioni di presentazione e applicazione sono miste.

Nonostante la sua ampia distribuzione, il modello RDA sta lasciando il posto al modello DBS tecnologicamente più avanzato.

Modello di server di database (DBS) - architettura di rete della tecnologia "Client - Server", che si basa sul meccanismo delle stored procedure che implementa le funzioni applicative. Nel modello DBS, il concetto di risorsa informativa è compresso in un database a causa dello stesso meccanismo di stored procedure, implementato nel DBMS, e anche in questo caso non in tutte.

I vantaggi del modello DBS rispetto al modello RDA sono evidenti: si tratta sia della possibilità di amministrazione centralizzata delle varie funzioni, sia della riduzione del traffico di rete perché al posto delle query SQL vengono trasmesse in rete chiamate di stored procedure, e la possibilità di suddividere una procedura tra due applicazioni e di risparmiare risorse informatiche al fine di utilizzare il piano una volta creato per l'esecuzione della procedura.

Modello di server applicazioni (AS) è un'architettura di rete della tecnologia Client-Server, che è un processo che viene eseguito su un computer client ed è responsabile dell'interfaccia utente (immissione e visualizzazione dei dati). L'elemento più importante di tale modello è il componente dell'applicazione, chiamato server delle applicazioni, che opera su un computer remoto (o due computer). Il server delle applicazioni è implementato come un gruppo di funzioni applicative, progettate sotto forma di servizi (servizi). Ogni servizio fornisce alcuni servizi a tutti i programmi che desiderano e possono utilizzarli.

Avendo appreso tutti i modelli della tecnologia Client-Server, possiamo trarre la seguente conclusione: modelli RDA e DBS, questi due modelli si basano su uno schema di condivisione delle funzioni a due livelli. Nel modello RDA le funzioni applicative sono trasferite al client, nel modello DBS la loro esecuzione è implementata tramite il kernel DBMS. Nel modello RDA, il componente dell'applicazione è unito al componente di presentazione, nel modello DBS è integrato nel componente di accesso alle risorse.

Il modello AS implementa uno schema di separazione delle funzioni a tre livelli, in cui il componente dell'applicazione è isolato come elemento isolato principale dell'applicazione, che ha interfacce standardizzate con altri due componenti.

I risultati dell'analisi dei modelli delle tecnologie "File Server" e "Client - Server" sono presentati nella Tabella 1.

Nonostante il nome, la tecnologia Client-Server è anche un sistema di calcolo distribuito. In questo caso calcolo distribuito è inteso come un'architettura client-server con la partecipazione di alcuni server. Nel contesto dell'elaborazione distribuita, il termine "server" indica semplicemente un programma che risponde alle richieste ed esegue le azioni necessarie su richiesta del client. Poiché Grid Computing è un tipo di sistema client-server, gli utenti sperimentano gli stessi vantaggi, come una maggiore larghezza di banda complessiva e la capacità di multitasking. Inoltre, l'integrazione di componenti di rete discreti e il loro funzionamento nel loro insieme contribuisce a una maggiore efficienza ea risparmi ridotti.

Poiché l'elaborazione avviene ovunque sulla rete, l'elaborazione distribuita in un'architettura client-server garantisce una scalabilità efficiente. Per ottenere un equilibrio tra server e client, un componente dell'applicazione dovrebbe avvenire sul server solo se l'elaborazione centralizzata è più efficiente. Se la logica del programma che interagisce con i dati centralizzati è concentrata sulla stessa macchina dei dati, non è necessario trasmetterli in rete, quindi i requisiti per l'ambiente di rete possono essere ridotti.

Di conseguenza, si può trarre la seguente conclusione: se è necessario lavorare con piccoli sistemi informativi che non richiedono un'interfaccia utente grafica, è possibile utilizzare il modello FS. La questione della GUI può essere risolta liberamente utilizzando il modello RDA. Il modello DBS è un'ottima opzione per i sistemi di gestione di database (DBMS). Il modello AS è l'opzione migliore per la creazione di sistemi informativi di grandi dimensioni, nonché quando si utilizzano canali di comunicazione a bassa velocità.

"Client-server" è un modello di interazione tra computer in rete.

In genere, i computer in questa configurazione non sono peer. Ognuno di loro ha il suo, diverso dagli altri, scopo, svolge il proprio ruolo.

Alcuni computer della rete possiedono e gestiscono informazioni e risorse informatiche, come processori, file system, servizio postale, servizio di stampa, database. Altri computer hanno la possibilità di accedere a questi servizi utilizzando i servizi del primo. Il computer che gestisce questa o quella risorsa è solitamente chiamato server di questa risorsa e il computer che vuole utilizzarla è chiamato client (Fig. 4.5).

Un server specifico è determinato dal tipo di risorsa che possiede. Quindi, se la risorsa è un database, allora stiamo parlando di un server di database, il cui scopo è servire le richieste dei client relative all'elaborazione dei dati nei database; se la risorsa è un file system, allora si parla di un file server, o di un file server, ecc.

In una rete, lo stesso computer può fungere sia da client che da server. Ad esempio, in un sistema informativo che include personal computer, un mainframe e un mini-computer, quest'ultimo può fungere sia da server di database, servendo le richieste dei client - personal computer, sia come client, inviando richieste a un mainframe.

Lo stesso principio si applica all'interazione dei programmi. Se uno di essi esegue alcune funzioni, fornendo ad altri un insieme di servizi corrispondente, tale programma funge da server. I programmi che utilizzano questi servizi sono comunemente indicati come client.

Il trattamento dei dati si basa sull'utilizzo di tecnologie di database e banche dati. Le informazioni nel database sono organizzate secondo determinate regole e costituiscono un insieme integrato di dati interconnessi. Questa tecnologia fornisce un aumento della velocità della loro elaborazione per grandi volumi. L'elaborazione dei dati a livello intramachine è il processo di esecuzione di una sequenza di operazioni specificata da un algoritmo. La tecnologia di elaborazione ha fatto molta strada.

Oggi il trattamento dei dati viene effettuato da computer o dai loro sistemi. I dati vengono elaborati dai programmi applicativi dell'utente. Il trattamento dei dati per le esigenze degli utenti, e principalmente per gli utenti di livello superiore, è di fondamentale importanza nei sistemi di gestione organizzativa.

Nel processo di evoluzione delle tecnologie dell'informazione, c'è un notevole desiderio di semplificare e ridurre il costo dei computer per gli utenti, delle loro apparecchiature software e dei processi eseguiti su di essi. Allo stesso tempo, gli utenti ricevono un servizio sempre più ampio e complesso dai sistemi e dalle reti di computer, che porta all'emergere di tecnologie chiamate client-server.


Limitare il numero di sistemi di abbonati complessi nella rete locale porta alla comparsa di computer nel ruolo di server e client. L'implementazione delle tecnologie client-server può differire nell'efficienza e nel costo delle informazioni e dei processi informatici, nonché nei livelli di software e hardware, nel meccanismo delle connessioni dei componenti, nell'efficienza dell'accesso alle informazioni, nella loro diversità, ecc. .

Ricevere un servizio vario e complesso organizzato in un server rende il lavoro dell'utente più produttivo e costa agli utenti meno delle complesse apparecchiature software e hardware di molti computer client. La tecnologia client-server, essendo più potente, ha sostituito la tecnologia file-server. Ha permesso di combinare i vantaggi dei sistemi a utente singolo (alto livello di supporto al dialogo, interfaccia intuitiva, prezzo basso) con i vantaggi di sistemi informatici più grandi (supporto per l'integrità, protezione dei dati, multitasking).

In senso classico, un DBMS è un insieme di programmi che consentono di creare e mantenere aggiornato un database. Funzionalmente, un DBMS è costituito da tre parti: un kernel (database), un linguaggio e strumenti di programmazione. Gli strumenti di programmazione fanno riferimento a un'interfaccia client oa un'interfaccia esterna. Possono includere un elaboratore di dati in un linguaggio di query.

Un linguaggio è una raccolta di comandi procedurali e non procedurali supportati da un DBMS.

I linguaggi più utilizzati sono SQL e QBE. Il kernel esegue tutte le altre funzioni incluse nel concetto di "elaborazione del database".

L'idea alla base della tecnologia client-server è quella di ospitare server su macchine potenti e applicazioni client utilizzando il linguaggio su macchine meno potenti. Questo utilizzerà le risorse di un server più potente e di macchine client meno potenti. L'I/O al database non si basa sulla suddivisione fisica dei dati, ma su quella logica, ovvero il server non invia una copia completa del database ai client, ma solo porzioni logicamente necessarie, riducendo così il traffico di rete.

Il traffico di rete è il flusso di messaggi sulla rete. Nella tecnologia client-server, i programmi client e le loro richieste sono archiviati separatamente dal DBMS. Il server elabora le richieste dei client, seleziona i dati necessari dal database, li invia ai client in rete, aggiorna le informazioni, garantisce l'integrità e la sicurezza dei dati.

I principali vantaggi dei sistemi client-server sono i seguenti:

Basso carico sulla rete (la workstation invia una richiesta al server del database per cercare determinati dati, il server stesso cerca e restituisce solo il risultato dell'elaborazione della richiesta, ovvero uno o più record, in rete);

Alta affidabilità (DBMS basati su tecnologia client-server mantengono l'integrità delle transazioni e il failover automatico);

Impostazione flessibile del livello dei diritti utente (alcuni utenti possono essere assegnati solo per visualizzare i dati, altri per visualizzare e modificare, mentre altri non vedranno alcun dato);

Supporto per campi di grandi dimensioni (tipi di dati supportati, la cui dimensione può essere misurata in centinaia di kilobyte e megabyte).

Tuttavia, i sistemi client-server presentano anche degli svantaggi:

Difficoltà nell'amministrazione a causa della disunione territoriale ed eterogeneità dei computer nei luoghi di lavoro;

Grado insufficiente di protezione delle informazioni da azioni non autorizzate;

Un protocollo chiuso per la comunicazione tra client e server, specifico di questo sistema informativo.

Per eliminare queste carenze, viene utilizzata l'architettura dei sistemi Intranet, che hanno concentrato e combinato le migliori qualità dei sistemi centralizzati e dei tradizionali sistemi client-server.

Vantaggi

  • Consente, nella maggior parte dei casi, di distribuire le funzioni di un sistema informatico tra più computer indipendenti in una rete. Ciò semplifica la manutenzione del sistema informatico. In particolare, i clienti non sono interessati dalla sostituzione, riparazione, aggiornamento o trasferimento del server.
  • Tutti i dati sono archiviati su un server, che di solito è molto più sicuro della maggior parte dei client. È più semplice imporre l'autorizzazione sul server in modo che solo i client con diritti di accesso appropriati possano accedere ai dati.
  • Consente di combinare diversi client. I client con diverse piattaforme hardware, sistemi operativi, ecc. possono spesso utilizzare le risorse di un server.

Screpolatura

  • Il guasto del server può rendere inoperativa l'intera rete di computer.
  • Il supporto per il funzionamento di questo sistema richiede uno specialista separato: un amministratore di sistema.
  • Costo elevato dell'attrezzatura.

Architettura client-server stratificata- una sorta di architettura client-server, in cui la funzione di elaborazione dei dati viene spostata su uno o più server separati. Ciò consente di separare le funzioni di archiviazione, elaborazione e presentazione dei dati per un uso più efficiente delle capacità di server e client.

Casi speciali di architettura a strati:

Rete di server dedicati

Rete di server dedicati(ing. Rete client/server) è una rete locale (LAN) in cui i dispositivi di rete sono centralizzati e controllati da uno o più server. Le singole workstation o client (come i PC) devono accedere alle risorse di rete tramite il/i server.

Letteratura

Valery Korzhov Sistemi client-server multilivello. Casa editrice Open Systems (17 giugno 1997). Archiviato dall'originale il 26 agosto 2011. URL consultato il 31 gennaio 2010.


Fondazione Wikimedia. 2010.

3 Tecnologia client-server

Tecnologia client-server ha sostituito lo schema di controllo centralizzato per il processo di elaborazione sui mainframe negli anni '80 del secolo scorso. A causa dell'elevata capacità di sopravvivenza e affidabilità del sistema informatico, della facilità di scalabilità, della capacità di lavorare contemporaneamente con diverse applicazioni, dell'elaborazione delle informazioni ad alta velocità, della fornitura all'utente di un'interfaccia di alta qualità e di altre funzionalità, questo è molto promettente e tutt'altro che la tecnologia esaurita è stata ulteriormente sviluppata.

Nel tempo, il modello di file server disfunzionale per le reti locali (FS) è stato sostituito dalle emergenti strutture client-server uno per uno (RDA, DBS e AS).

Avendo occupato la nicchia dei database, la tecnologia client-server è diventata la principale tecnologia di Internet globale. Inoltre, come risultato del trasferimento delle idee di Internet nell'ambiente dei sistemi aziendali, è apparsa la tecnologia Intranet . A differenza della tecnologia Client-Server, questa tecnologia non è focalizzata sui dati, ma sulle informazioni nella loro forma finale pronta per il consumo. I sistemi informatici costruiti sulla base dell'Intranet includono server informativi centrali e componenti distribuiti per presentare le informazioni all'utente finale (programmi di navigazione o browser). L'interazione tra il client e il server nella Intranet avviene tramite tecnologie web.

Oggi la tecnologia Client-Server sta guadagnando popolarità, ma di per sé non offre ricette universali. Dà solo un'idea generale di come dovrebbe essere organizzato un moderno sistema informativo distribuito. Allo stesso tempo, l'implementazione di questa tecnologia in prodotti software specifici e persino in tipi di software differisce in modo abbastanza significativo.

3.1 Architettura client-server classica a due livelli

In genere, i componenti di rete non sono uguali: alcuni hanno accesso alle risorse (ad esempio, una stampante, un processore, un sistema di gestione del database (DBMS), un file system e così via), altri hanno la possibilità di accedere a queste risorse.

Tecnologia client-server è l'architettura del pacchetto software, in cui il programma applicativo è distribuito su due componenti logicamente differenti (client e server), che interagiscono secondo lo schema "richiesta-risposta" e risolvono i loro compiti specifici (Figura 6).

Figura 6 - Architettura "Client - server"

Un computer (o programma) che controlla e/o possiede una qualsiasi risorsa si chiama server di questa risorsa.

Un computer (o programma) che richiede e utilizza una risorsa si chiama cliente di questa risorsa.

Il client e il server possono trovarsi sia sullo stesso computer (PC) che su diversi PC della rete. Inoltre, può verificarsi una situazione in cui alcune unità di programma eseguiranno contemporaneamente le funzioni di un server in relazione a un'unità e di un client in relazione a un'altra.

Il principio fondamentale della tecnologia "Client-Server" è dividere le funzioni applicative in almeno tre gruppi:

- moduli interfaccia utente ;

Questo gruppo è anche chiamato logica di presentazione. Attraverso questo gruppo, gli utenti interagiscono con l'applicazione. Indipendentemente dalle caratteristiche specifiche della logica di presentazione (interfaccia a riga di comando, interfacce utente grafiche complesse, interfacce intermedie), il suo compito è fornire i mezzi per il più efficiente scambio di informazioni tra l'utente e il sistema informativo.

- moduli di archiviazione ;

Questo gruppo è anche chiamato logica aziendale. La logica aziendale definisce lo scopo specifico dell'applicazione (ad esempio, le funzioni dell'applicazione specifiche di un determinato dominio). La separazione di un'applicazione lungo i limiti del programma fornisce una base naturale per la distribuzione di un'applicazione su più computer.

- moduli elaborazione dati (funzioni di gestione delle risorse);

Questo gruppo è anche chiamato logica di accesso ai dati o algoritmi di accesso ai dati. Gli algoritmi di accesso ai dati sono stati storicamente visti come un'interfaccia specifica dell'applicazione per l'archiviazione persistente, come un file system o un DBMS. Con l'aiuto di moduli di elaborazione dati, viene organizzata un'interfaccia specifica per l'applicazione al DBMS. Utilizzando l'interfaccia, l'applicazione gestisce le connessioni e le query del database (traducendo le query specifiche dell'applicazione in SQL, recuperando i risultati e traducendo quei risultati in strutture di dati specifiche per l'applicazione).

Ciascuno di questi gruppi può essere implementato indipendentemente dagli altri due. Ad esempio, senza modificare i programmi utilizzati per memorizzare ed elaborare i dati, è possibile modificare l'interfaccia utente in modo tale che gli stessi dati vengano visualizzati sotto forma di tabelle, grafici o istogrammi. Applicazioni molto semplici sono spesso in grado di assemblare tutte e tre le parti in un unico programma e questa separazione segue i confini funzionali.

In conformità con la separazione delle funzioni in qualsiasi applicazione, si distinguono i seguenti componenti:

- componente di presentazione dei dati;

- componente applicativa;

- componente di gestione delle risorse.

Nella classica architettura client-server, devi distribuire le tre parti principali dell'applicazione su due moduli fisici. In genere, il componente dell'applicazione risiede sul server (come un server di database), il componente di presentazione risiede sul lato client e il componente di gestione delle risorse è condiviso tra il lato client e quello server. Questo è il principale svantaggio della classica architettura a due livelli.

In un'architettura a due livelli, quando si suddividono gli algoritmi di elaborazione dei dati, gli sviluppatori devono disporre di informazioni complete sulle ultime modifiche apportate al sistema e comprendere queste modifiche, il che crea grandi difficoltà nello sviluppo di sistemi client-server, nella loro installazione e manutenzione, poiché sforzi significativi devono essere spesi per coordinare diversi gruppi di specialisti. Nelle azioni degli sviluppatori sorgono spesso contraddizioni e questo rallenta lo sviluppo del sistema e ti costringe a modificare elementi già pronti e comprovati.

Per evitare l'incongruenza dei vari elementi dell'architettura, sono state realizzate due modifiche dell'architettura client-server a due livelli: Fat Client (Thin Server) e Thin Client (Fat Server).

In queste architetture, gli sviluppatori hanno cercato di eseguire l'elaborazione dei dati su una delle due parti fisiche, sul lato client ("Thick client") o sul server ("Thin client").

Ogni approccio ha i suoi svantaggi. Nel primo caso, la rete è ingiustificatamente sovraccaricata, perché su di essa vengono trasmessi dati grezzi e quindi ridondanti. Inoltre, il supporto del sistema e la sua modifica diventa più complicato, poiché la sostituzione dell'algoritmo di calcolo o la correzione di un errore richiede la contemporanea sostituzione completa di tutti i programmi di interfaccia, altrimenti potrebbero verificarsi errori o incongruenze dei dati. Se tutta l'elaborazione delle informazioni viene eseguita sul server, sorge il problema della descrizione delle procedure integrate e del loro debug. Un sistema con elaborazione delle informazioni su un server è assolutamente impossibile da trasferire su un'altra piattaforma (OS), il che è un grave inconveniente.

Se, dopo tutto, viene sviluppata un'architettura classica a due livelli "Client - Server", è necessario ricordare quanto segue:

- l'architettura "Thick server" è simile all'architettura "Thin client" (Figura 33) ;

Figura 33. - Architettura thin client

Invio di una richiesta dal client al server, elaborazione della richiesta da parte del server e passaggio del risultato al client. Tuttavia, le architetture presentano i seguenti svantaggi:

L'implementazione diventa più complicata, poiché linguaggi come SQL non sono adatti allo sviluppo di tale software e non esistono buoni strumenti di debug;

Le prestazioni dei programmi scritti in linguaggi come SQL sono significativamente inferiori rispetto ai programmi scritti in altri linguaggi, il che è importante per i sistemi complessi;

I programmi scritti in linguaggi DBMS di solito non funzionano in modo abbastanza affidabile; un errore in essi può portare al fallimento dell'intero server di database;

I programmi risultanti sono completamente non portabili su altri sistemi e piattaforme.

- l'architettura "Thin server" è simile all'architettura "Thick client" (Figura 34).

L'elaborazione della richiesta avviene sul lato client, ovvero tutti i dati grezzi dal server vengono trasferiti al client. Tuttavia, le architetture presentano i seguenti svantaggi:

L'aggiornamento del software diventa più complicato, poiché deve essere sostituito contemporaneamente in tutto il sistema;

La distribuzione dei poteri diventa più complicata, poiché la differenziazione degli accessi avviene non secondo azioni, ma secondo tabelle;

La rete è sovraccarica a causa del trasferimento di dati grezzi su di essa;

Protezione dei dati debole, poiché è difficile assegnare correttamente l'autorità.

Figura 34. - Architettura "Thick client"

Per risolvere i problemi di cui sopra, viene utilizzata un'architettura client-server multilivello (tre o più livelli).

3.2 Modello a tre livelli

Dalla metà degli anni '90 del secolo scorso, l'architettura a tre livelli "Client - Server" ha ricevuto riconoscimenti da specialisti, che hanno diviso il sistema informativo per funzionalità in tre componenti separati: logica di presentazione, logica di business e logica di accesso ai dati. A differenza dell'architettura a due livelli, l'architettura a tre livelli ha un collegamento aggiuntivo: il server delle applicazioni, progettato per implementare la logica di business, scaricando completamente il client che invia le richieste al middleware e massimizzando tutte le capacità del server.

In un'architettura a tre livelli, il client di solito non è sovraccaricato di funzioni di elaborazione dati, ma svolge il suo ruolo principale come sistema per presentare le informazioni dall'application server. Tale interfaccia può essere implementata utilizzando strumenti tecnologici Web standard: browser, CGI e Java. Ciò riduce la quantità di dati trasferiti tra il client e il server delle applicazioni, consentendo ai computer client di essere collegati anche su linee lente come le linee telefoniche. Inoltre, il lato client può essere così semplice che nella maggior parte dei casi viene implementato utilizzando un browser generico. Ma se devi ancora cambiarlo, questa procedura può essere eseguita rapidamente e indolore.

Server applicazioniÈ un software che è un livello intermedio tra il client e il server (Figura 35).

Figura 35 - Server delle applicazioni

Esistono diverse categorie di prodotti middleware:

Orientato al messaggio: brillanti rappresentanti di MQseries e JMS;

Object Broker - brillanti rappresentanti di CORBA e DCOM;

Basato su componenti: brillanti rappresentanti di .NET e EJB.

L'utilizzo di un server delle applicazioni offre più opzioni, ad esempio la riduzione del carico sui computer client perché il server delle applicazioni bilancia il carico e fornisce protezione contro gli errori. Poiché la logica di business è archiviata sul server delle applicazioni, qualsiasi modifica nei rapporti o nei calcoli non influirà in alcun modo sui programmi client.

Esistono diversi server applicativi di aziende famose come Sun Microsystem, Borland, IBM, Oracle e ognuno di essi differisce nell'insieme dei servizi forniti (non prenderemo in considerazione le prestazioni in questo caso). Questi servizi semplificano la programmazione e l'implementazione di applicazioni a livello aziendale. In genere, un server delle applicazioni fornisce i seguenti servizi:

WEB Server: molto spesso l'Apache più popolare e potente è incluso nella consegna;

WEB Container - Consente l'esecuzione di JSP e Servlet. Per Apache, questo è Tomcat;

Vantaggi

  • Consente, nella maggior parte dei casi, di distribuire le funzioni di un sistema informatico tra più computer indipendenti in una rete. Ciò semplifica la manutenzione del sistema informatico. In particolare, i clienti non sono interessati dalla sostituzione, riparazione, aggiornamento o trasferimento del server.
  • Tutti i dati sono archiviati su un server, che di solito è molto più sicuro della maggior parte dei client. È più semplice imporre l'autorizzazione sul server in modo che solo i client con diritti di accesso appropriati possano accedere ai dati.
  • Consente di combinare diversi client. I client con diverse piattaforme hardware, sistemi operativi, ecc. possono spesso utilizzare le risorse di un server.

Screpolatura

  • Il guasto del server può rendere inoperativa l'intera rete di computer.
  • Il supporto per il funzionamento di questo sistema richiede uno specialista separato: un amministratore di sistema.
  • Costo elevato dell'attrezzatura.

Architettura client-server stratificata- una sorta di architettura client-server, in cui la funzione di elaborazione dei dati viene spostata su uno o più server separati. Ciò consente di separare le funzioni di archiviazione, elaborazione e presentazione dei dati per un uso più efficiente delle capacità di server e client.

Casi speciali di architettura a strati:

Rete di server dedicati

Rete di server dedicati(ing. Rete client/server) è una rete locale (LAN) in cui i dispositivi di rete sono centralizzati e controllati da uno o più server. Le singole workstation o client (come i PC) devono accedere alle risorse di rete tramite il/i server.

Letteratura

Valery Korzhov Sistemi client-server multilivello. Casa editrice Open Systems (17 giugno 1997). Archiviato dall'originale il 26 agosto 2011. URL consultato il 31 gennaio 2010.


Fondazione Wikimedia. 2010.

Principali articoli correlati