2009-09-25 4 views
5

Desidero avere un'architettura basata su eventi in cui il consumatore dell'evento (sottoscrittore/osservatore) e il produttore dell'evento (editore/soggetto) si trovino su una geografia distribuita.Observer su una rete

C'è qualcosa in .NET che trasmette eventi su una rete senza il mio dovere di analizzare l'implementazione del meccanismo di trasporto?

Ricordo che Juval Lowy aveva detto qualcosa sui servizi Enterprise in uno show DNR circa 2 anni fa, ma non riesce a ricordare cosa fosse.

Qualcuno sa cosa posso utilizzare dal framework .NET per fare questo?

risposta

6

È possibile eseguire questa operazione con WCF e MSMQ. Tom Hollander ha un blog post on it.. Si potrebbe anche guardare a soluzioni come TIBCO. Se hai voglia di open source, vale la pena dare un'occhiata anche allo RabbitMQ. Se stai cercando un bus di servizio, allora mass transit è anche un'opzione open source. Mike Hadlow ha blogged about it here.

+0

+1 per MSMQ. Questo è esattamente ciò per cui è progettato MSMQ o un ESB che supporta pub/sub. – jrista

+0

Tibco non è un po '* eccessivo * per questa particolare domanda? – osij2is

+0

TIBCO è lo spawn di satana. –

1

C'è qualcosa in .NET che trasmette eventi su una rete senza soluzione di continuità senza la mia dover scandagliare nella implementazione del trasporto meccanismo?

Credo che questo sia il punto in cui .NET Remoting (link) entra in gioco. Non sono esperto, ma sembra quello che stai cercando.

Oltre a .NET Remoting, WCF (Windows Communication Foundation) (link) può essere un meglio alternativa al Remoting. Ho una certa esperienza con WebServices e poco con WCF, ma vorrei studiare queste due tecnologie .NET.

+0

I servizi remoti sono ora considerati obsoleti. WCF dovrebbe invece essere usato. – RichardOD

+0

Ho immaginato come tale. Non l'ho mai usato ma non volevo escluderlo. WCF WTF? :) – osij2is

+0

L'implementazione di eventi su Remoting è considerata una cattiva pratica. http://www.thinktecture.com/resourcearchive/net-remoting-faq/remotingusecases – ParmesanCodice

1

questo suona come un lavoro perfetto per un sistema di Erlang ... o forse usare un client come AMCQ RabbitMQ, no?

1

MSMQ sarebbe un buon metodo per eseguire questa operazione se si dispone dell'accesso di configurazione. WCF dovrebbe essere un'alternativa ragionevole a seconda di quanto sia vitale la messaggistica.

semplice esempio MSMQ: http://www.codeproject.com/KB/cs/mgpmyqueue.aspx