Pregunta

Estoy desarrollando un conjunto de aplicaciones que trabajan juntas para crear un sistema para procesar datos de medición. Hay varias razones por las que quiero que estén acopladas libremente y el sistema debe ser extensible por terceros, por lo que las aplicaciones se vincularán entre sí mediante mensajes.

Estoy buscando un sistema de mensajería que ofrezca enlaces en (al menos) C #, Java y Python y que admita patrones de mensajería como Publicar-Suscribir, Entrega garantizada, Consumidor selectivo (como Peek en .Net Messaging).

Hasta donde pude descubrir, no hay nada malo con JMS o .Net Messaging, es solo que son solo para .Net / Java.

El sistema debería darme control sobre qué mecanismo de transporte (sockets, colas de mensajes, etc.) usar al configurar un canal. Quiero poder escalar a máquinas remotas y acelerar las cosas con las instalaciones de transporte locales.

Si no puedo encontrar nada adecuado, tendré que rodar el mío. Probablemente usaría los buffers de protocolo de Google para la serialización. Si alguien tiene otras recomendaciones sobre opciones tecnológicas, dispare.

Ah, sí, y me gustaría tener un cifrado opcional por canal o por mensaje.

ETA: Gracias por todas las respuestas rápidas. Estoy trabajando en los documentos y amp; propaganda ahora. ¿Alguien ha utilizado las siguientes tecnologías y para qué / con qué resultados?

¿Fue útil?

Solución

activemq

http://activemq.apache.org/cross-language-clients.html

Admite todos los siguientes protocolos

  • OpenWire
  • RESTO
  • Pisar
  • Notificación WS
  • XMPP
  • AMQP

Gracias Paul

Otros consejos

SonicMQ podría ser una herramienta que estás buscando. Sé que están muy interesados ??en Progress, pero que también admiten otras alternativas de idiomas y son un jugador líder en el sector de la mensajería.

Sonic Software

Como Paul mencionó, intente ActiveMQ que admite muchos clientes de idiomas y cable protocolos.

BTW ActiveMQ 6.x probablemente usará los buffers de protocolo de Google como uno de sus transportes de cable subyacentes :)

He usado Apache ActiveMQ en muchos proyectos con gran éxito. Es el most popular y poderoso intermediario de mensajes de código abierto en la actualidad.

Incidentalmente en .Net / C # el proyecto ActiveMQ ha creado la API NMS que es un estándar API para comunicarse con los corredores de mensajes en la plataforma .Net que ahora está integrada en Spring.Net

¿Ha considerado MPI ?

Puede usar un ESB (Enterprise Service Bus) como Mule . La idea es que envíe sus mensajes al Bus de la forma que desee (JMS, http, correo electrónico) y el bus realiza el enrutamiento por usted. No sé si hay enlaces .NET, pero incluso si no hay ninguno disponible, puede construir el suyo usando un mecanismo de extensión. Por supuesto, esto significa que necesita configurar un autobús en algún lugar.

Si desea un soporte comercial sólido e integración e integración para casi cualquier cosa, la serie MQ de IBM, ahora Websphere MQ proporciona todas las funciones descritas en sus requisitos.

A veces haces obtienes lo que pagas ... ;-)

Si desea un multilenguaje "estándar" - lo que significa que no está vinculado a usar un intermediario / intermediario específico como ActiveMQ, SonicMQ o WebsphereMQ - Le sugiero encarecidamente que consulte el estándar AMQP ( http://www.amqp.org ) y corredores relacionados (RabbitMQ, QPid, OpenAMQ; consulte http://www.amqp.org/confluence/display/AMQP/AMQP+Products ).

Open Message Queue (Open MQ) se incluye en el servidor de aplicaciones GlassFish y también ejecuta stand -solo. Se inicia en unos segundos y es compatible con clientes Java y C. El soporte de Stomp se encuentra actualmente en desarrollo en la versión 4.4.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top