Confuso come progettare l'architettura del server delle app

3

Sto sviluppando un'applicazione JavaFX desktop che si connette a un server app WildFly locale tramite il protocollo REST. WildFly si descrive come un

application runtime that helps you build amazing applications.

e il modo in cui visualizzo WildFly è solo a scopo di sviluppo, quindi quando alla fine voglio distribuire la mia app al pubblico, dovrò migrare il mio programma su un server delle applicazioni su "the cloud", per così dire, tale come AWS, Google Cloud Engine o un semplice droplet Digital Ocean (sembra la soluzione migliore).

Tuttavia, il post qui dice che WildFly può essere usato commercialmente quindi ora sono totalmente confuso riguardo l'architettura tipica I dovrebbe usare quando si distribuisce un'app java (commerciale) al pubblico. Presumo che Droplet sia solo un server che può assumere ruoli diversi (app server, server DB, ecc.) ... sostituendo efficacemente WildFly. In tal caso, non avrò bisogno di installare del software su Droplet per renderlo efficacemente un app server? Installo WildFly su di esso?

Che cos'è un'architettura comune ed efficace per la seguente configurazione:

Possiedo un dominio, es: www.mysite.com che contiene un collegamento per il download per il mio software Java. Un utente fa clic sul collegamento e scarica il software. Una volta sul PC, il programma può comunicare tramite REST con gli endpoint sul mio server dell'app tramite il protocollo REST. Sia il mio sito che l'app java devono avere accesso al database degli utenti, che presumo sia accessibile da entrambe le richieste REST. Sarà necessario un po 'di caching come Redis.

La mia ipotesi: il dominio del sito Web può essere ospitato ovunque, ad esempio iPage.com, e l'applicazione Java (codice lato client) è ospitata come file da scaricare sul server iPage. Il codice lato server dell'app java deve essere ospitato da Digital Ocean o simile, che fornisce endpoint REST per comunicare con il codice lato client. Il server di database fornirà anche endpoint per il sito Web e l'app. Presumo che Redis dovrebbe essere integrato nel mio codice app-server in qualche modo?

Se l'app server e il server database saranno insieme o separato è in discussione, ma sto cercando un chiarimento su un approccio standard e corretto per le mie esigenze.

    
posta Mathomatic 20.12.2017 - 20:43
fonte

1 risposta

1

L'applicazione desktop JavaFX può effettuare chiamate REST al tuo server applicazioni Wildfly (che è un server applicazioni precedentemente noto come JBoss, sviluppato da Red Hat e che è una soluzione commercialmente valida) che potrebbe trovarsi nel cloud insieme al tuo database . È inoltre possibile creare un servizio Web RESTful (all'interno del database) che consenta l'accesso al database per l'applicazione JavaFX. Non sei sicuro di quale database stai usando così qui è un tutorial di esempio per iniziare.

Preferibilmente, per motivi di sicurezza e prestazioni, il server delle applicazioni e il server del database devono essere su server o contenitori separati. Puoi parlare con il tuo cloud provider su come puoi configurarlo nel loro ambiente cloud.

Spero di aver compreso il tuo dilemma in modo accurato.

    
risposta data 21.12.2017 - 00:53
fonte

Leggi altre domande sui tag