2009-04-06 25 views
20

Actualmente estoy haciendo análisis y diseño para una nueva arquitectura de bus de mensajes en mi compañía. Intenté con MSMQ hacer algo como esto en el pasado y funciona bien y estaba pensando en hacer lo mismo otra vez para este proyecto, pero usando WCF como la API en lugar de usar la API System.Messaging. ¿Alguien ha tenido experiencia con MSMQ en WCF? ¿Es más fácil usar la API System.Messaging? ¿Cuáles serían algunos beneficios de usar WCF sobre System.Messaging o viceversa?Implementación de una arquitectura de Message Bus

Respuesta

30

en mi humilde opinión, con tantos buenos, arquitecturas de bus flexibles y probados para elegir (NServiceBus, Mass Transit, Rhino Service Bus), llevando a cabo su propia sería un gran NIH. No es una tarea trivial.

Udi lo describe muy bien en this message.

+0

mausch gracias por la información sobre los sistemas de bus de mensajes que ya existen. ¡No sabía que ya había sistemas como este abiertos al público! – heartlandcoder

+1

¿Cómo es esta una respuesta a la pregunta de la OP sobre qué es lo que debe usar básicamente ** MSMQ ** o ** WCF con enlace MSMQ **? ** Respuesta de RoadWarriors ** a continuación, creo que está más en línea con la pregunta del OP. – MickyD

3

el Apache ActiveMQ (open source) intermediario de mensajes también tiene un cliente .NET:

http://activemq.apache.org

Junto con Apache y Apache Camel ServiceMix, los patrones de integración empresarial y sistemas de bus de servicios empresariales son fáciles de configurar .

5

Lo siento, llegando muy tarde a esto, pero espero que mi respuesta sea útil.

Tanto WCF Queuing como System.Messaging son envoltorios sobre las API de MSMQ. WCF es más sofisticado y complejo, pero tiene los siguientes beneficios:

  • Una vista OO de los procesos de negocio de su aplicación en lugar de su plomería de comunicación.
  • Encriptación y autenticación de mensajes de extremo a extremo de manera gratuita. System.Messaging solo admite cifrado en el cable, no en la tienda.
  • Si lo desea, puede alojar dentro de IIS en lugar de crear su propio host personalizado.
  • Correlación de mensajes de forma gratuita. Esto le permite agrupar mensajes en sesiones automáticamente.
  • Dosificación transaccional gratuita.
+0

Con WCF no necesita tener IIS instalado para proporcionar ningún tipo de servicio. Respuesta engañosa. – argatxa

+1

@argatxa: Estoy diciendo que con WCF puede alojar dentro de IIS. Estoy de acuerdo en que no necesita hospedarse en IIS. Editaré mi respuesta para reflejar esto. – RoadWarrior

+0

@RoadWarrior Su primera comparación es correcta; sin embargo, es incorrecta en otros. 1) Tanto MSMQ como WCF tienen ID de correlación. 2) MSMQ tiene transacciones 3) MSMQ usa autenticación y autorización. También podría argumentarse que MSMQ es más difícil que WCF simplemente porque es una API de MOM – MickyD