Desktop GUI Client - Comunicazione RDBMS remota

0

Scusa se ti sto ponendo una domanda banale ma ho cercato per un po 'senza fortuna. Devo progettare un sistema e sto cercando consigli sulla tecnologia da utilizzare.

Il layout è molto semplice: è un'applicazione di vendita con un database centralizzato e più client. Ogni venditore ha un'app GUI installata sul suo laptop che dovrebbe essere in grado di connettersi al database per recuperare i dati e caricare i dati (ad esempio, registrare nuovi ordini).

La mia domanda è la seguente: come deve essere implementata la comunicazione tra il client e il server? Dubito che la connessione diretta a RDBMS sia una buona idea ... Devo usare i servizi web? XML-RPC? Come implementare l'autenticazione e codificare i dati?

Grazie per il tuo consiglio!

    
posta magom001 06.11.2013 - 20:04
fonte

3 risposte

2

In base a ciò che stai descrivendo, una semplice interfaccia in stile REST dovrebbe essere più che sufficiente. Dovresti compilare gli ordini in un blocco di XML e postarlo sul tuo server per aggiungerli. Puoi anche rispondere a gets, puts e delete. La maggior parte dei linguaggi / strumenti desktop dovrebbe disporre delle librerie client necessarie per questo.

Qualcuno dei linguaggi lato server più comuni sarebbe adatto per la parte server corrispondente. Per proteggere la connessione, configura SSL sul server web. Per scopi di autorizzazione (nei diritti delle app), ci sono un paio di opzioni. Potresti voler vedere come funziona OAuth2. Oppure passa le credenziali come parte della richiesta HTTP.

    
risposta data 06.11.2013 - 22:38
fonte
1

Se la sicurezza è un problema, è necessario considerare l'intero stack SOA dei servizi Web WS *.

La specifica è piuttosto scoraggiante, e il WSDL xml è francamente spaventoso, tuttavia la complessità deriva dal numero di scenari trattati (diversi trasporti, diversi metodi di autenticazione, anti-manomissione, non-ripudenza, ecc.).

La buona notizia è che per lo più non si ha a che fare con questa complessità. La maggior parte degli ambienti di sviluppo ha strumenti estesi e maturi e supporto bibliotecario.

Quindi un servizio WS abbastanza semplice coprirebbe di più i tuoi attuali requisiti e tutti i requisiti futuri.

    
risposta data 07.11.2013 - 03:36
fonte
0

Credo che queste siano le opzioni da considerare:

  1. Applicazioni Java (SWING o SWT). Numerose librerie come Spring e Hibernate per la creazione di architetture multilivello, un'eccellente connettività di database.
  2. Qt. Crossplatform, può funzionare con i dati.
  3. Applicazione Web con supporto offline.
risposta data 07.11.2013 - 00:48
fonte

Leggi altre domande sui tag