Risoluzione dell'host del servizio: equivalente in C# al registro RMI?
-
22-08-2019 - |
Domanda
Sto frequentando presto un corso Capstone del Master e sto realizzando il mio progetto in C# mentre tutti gli altri stanno facendo il loro in Java.Il progetto ha 4 servizi e richiede un server dei nomi che mappi i nomi dei servizi sui socket.L'istruttore suggerisce agli studenti di utilizzare l'RMI per creare questo registro.Poiché non ho molta familiarità con Java e l'istruttore non ha molta familiarità con .NET, non siamo riusciti a trovare un equivalente in C#.Qualcuno là fuori ne è a conoscenza?
Aggiornamento:
Sto cercando un modo per scoprire un servizio WCF senza conoscerne esplicitamente il socket.
Aggiornamento 2:
Farò una dimostrazione del progetto sul mio laptop XP utilizzando il server VS 2008/WebDev.
Soluzione
RMI Registery in Java funziona come un contenitore dove si può cercare servizi da parte di una chiave. Questo meccanismo è simile a risolvere servizi / oggetti tramite ServiceLocator (ad esempio modello ServiceLocator) in cui si utilizza un motore di iniezione di dipendenza, e chiedere che per risolvere un'istanza del servizio (cioè da un nome noto, tramite interfaccia, ecc.):
IMyService service = ServiceLocator.Resolve<IMyService>();
o
IMyService service = (IMyService)ServiceLocator.Resolve(typeof(IMyservice));
WCF funziona solo in un unico servizio vs. moda singolo host di servizio, significa che ogni singolo servizio richiede un host di servizio separato. È possibile scrivere un contenitore di servizio che aggrega i padroni di casa di servizio, si apre la porta, e li registra in un contenitore DI, e poi semplicemente chiedere un'istanza del servizio di cui sopra.
Altri suggerimenti
È possibile utilizzare il server UDDI che viene fornito con Windows Server 2K3 / 8. Questo vi darà la scoperta dei vostri servizi. Diverso da quello che si avrebbe bisogno di un pacchetto di terze parti o roll your own.
Non sono un esperto su Java Remoting.
Credo che quello che state cercando è chiamato in termini di servizio WCF endpoint. Questo può essere fatto sia in un config file di o tramite codice .
Per una panoramica su WCF vorrei fare riferimento a questo link: Windows Communication Fondazione Architettura
Leggi di più Condivisione porta TCP, la nuova tecnologia di Windows Server 2008, potrebbe aiutarti