Differenziando le architetture standalone e client-server

1

Mi chiedevo quale sia la differenza esatta tra un client-server e un'applicazione standalone, in particolare nel seguente scenario.

Per esempio, diciamo che c'è un'applicazione di moduli di vittoria in esecuzione su un PC. In modo che il DBMS, SQL Server anche installato sullo stesso PC in cui ospita anche il database. Ora questa è chiaramente una configurazione autonoma.

Ora se introduciamo un altro PC e lo colleghiamo al primo PC attraverso una rete locale e vogliamo eseguire l'applicazione anche su questo nuovo PC, ma useremo lo stesso database che si trova nel primo PC.

Questa applicazione è considerata un'app standalone o un thick client-server?

MODIFICA: l'applicazione comunica con il server SQL per accedere ai dati e l'elaborazione avverrà localmente. Il server SQL ospita i dati e ci sono anche alcune stored procedure e viste.

    
posta CAD 12.07.2014 - 10:52
fonte

1 risposta

5

La maggior parte delle applicazioni client-server può essere installata in una "configurazione autonoma ", dove il client e il server sono gli stessi, come hai scritto, ma ciò non li rende "standalone" > applicazione ". Tale sistema è ancora un'applicazione client / server e la comunicazione tra processi tra il processo dell'applicazione client e il processo del database si verifica in genere tramite un protocollo di rete come TCP / IP. Inoltre, l'installazione e l'amministrazione richiedono in genere lo stesso sforzo di due macchine separate.

Naturalmente, le applicazioni specificatamente create per "utilizzo standalone" sono in genere ottimizzate per tale scenario, ad esempio accedendo al database direttamente dal processo dell'applicazione client, eliminando la necessità di comunicazioni interprocesso (in genere più lente). Oppure hanno ancora due processi per l'app client e il database, ma quelli comunicano usando "memoria condivisa" , che (sulla maggior parte sistema operativo, vedi qui per execeptions) supporta solo scenari non distribuiti. Ciò rende le applicazioni più leggere e facili da installare o amministrare, ma non è possibile connettersi facilmente a quel database da un secondo PC.

Naturalmente, molti sistemi DB (come SQL Server) sono abbastanza intelligenti da utilizzare TCP / IP per una connessione a un'altra macchina e passano automaticamente alla memoria condivisa quando rilevano client e server sulla stessa macchina. Chiamerei comunque un tale sistema un'applicazione client / server.

Come esempio nel contesto dei database Microsoft, c'è SQL Server Compact Edition che è specificatamente realizzato per tale standalone applicazioni, ma non per l'utilizzo client / server. Un esempio molto popolare del mondo freeware è SqLite. E se stai cercando un sistema di database relazionale completo che possa passare da una modalità "stand alone" (usando la memoria condivisa, ma facile da installare senza un servizio in background) e "modalità server client" (usando TCP / IP) I raccomanderebbe SQL Anywhere .

    
risposta data 12.07.2014 - 11:37
fonte

Leggi altre domande sui tag