Ho diverse domande non comuni relative alla progettazione di servizi REST ospitati su un server che comunica con applicazioni locali o remote.
Ad esempio, diciamo che ho 2 macchine ("A" e "B") situate in due paesi diversi.
La macchina "A" ospita un server che esegue un endpoint REST (= indirizzo IP con una porta associata) per interagire con le risorse REST.
Dal lato client, ho un'applicazione che interagisce con le risorse REST. Stavo considerando di eseguire l'applicazione sulla macchina "B", ha senso dal momento che REST è un'architettura distribuita con comunicazioni remote.
Tuttavia, mi chiedo se abbia senso ospitare l'applicazione localmente sulla macchina "A"? Il vantaggio principale che vedo qui è legato alla latenza della rete. E quindi, se l'applicazione richiede alcuni vincoli di latenza, la scelta giusta potrebbe essere quella di ospitarla localmente.
Tuttavia, non sono sicuro che sia vero (riguardo a questo link: link ). E vorrei avere un feedback su questo.
Inoltre, non sono sicuro di cosa fare tecnicamente se l'esecuzione di applicazioni locali ha senso. Ad esempio, potrei immaginare di avere 2 endpoint per una stessa risorsa: uno per l'applicazione locale con risorse in esecuzione sull'interfaccia localhost, uno per l'applicazione remota con risorse in esecuzione su un'interfaccia ethernet (con indirizzo IP e porta). Ma ancora una volta, non so se ha senso o no.
Per riassumere le mie domande:
- Le applicazioni locali in esecuzione sullo stesso computer che ospita il server avranno una comunicazione REST più veloce?
- Per comunicazioni REST "locali" più veloci, un server deve esporre 2 endpoint (uno per localhost / uno per remoto)?
Grazie!