Queste due cose sono essenzialmente le stesse. Un localizzatore di servizi è un qualsiasi sistema centralizzato che ti consente di trovare un servizio per elaborare una richiesta. Utilizzando il modello di progettazione del localizzatore di servizi , puoi utilizzare questo per ottenere un'implementazione di servizio (che è davvero un'interfaccia a livello di codice ) dal localizzatore di servizio.
Più in generale, questo sistema viene spesso utilizzato nel calcolo distribuito per trovare un nodo nella rete in grado di soddisfare la richiesta di altri nodi.
Ad esempio, alcuni client potrebbero voler eseguire alcuni calcoli su alcuni dati. Diciamo che ci sono molti modi per fare questo calcolo, ognuno implementato come un servizio, ma al cliente non importa quale sia effettivamente utilizzato. Il cliente potrebbe semplicemente richiedere qualsiasi servizio dal localizzatore di servizi, senza doversi preoccupare di quale tipo specifico viene restituito.
In entrambi i casi, i vantaggi e gli svantaggi sono in gran parte gli stessi. Il localizzatore di servizi ti consente di modulare meglio il tuo programma e ti fa preoccupare meno delle implementazioni di servizi specifici. D'altra parte, si ottiene questo punto di errore centralizzato che potrebbe essere un collegamento debole nel sistema. Come tutto il resto, è un compromesso quindi non c'è una semplice risposta "buona contro cattiva".