Pregunta

Mi patrón es un proveedor de software para un mercado específico. Nuestros clientes a integrar nuestro sistema con otros usuarios utilizando servicios web. Usamos la tecnología de Microsoft, y nuestros servicios web se implementan en ASP.NET y WCF.

Ha llegado el momento de revisar nuestro conjunto actual de los servicios, y llegar a estándares de la compañía para futuras integraciones. Estoy leyendo "Los patrones de integración empresarial", y también he estado buscando un poco a nServiceBus y de Transporte Masivo. Estos pueden simplificar temas como el control de versiones contrato y la unidad de pruebas, pero parecen ser los más útiles para proporcionar un bus de servicio interno, no para exponer servicios a clientes externos.

Nuestros clientes son en muchas plataformas diferentes, y requieren nuestros servicios para ser compatible con los estándares. Eso puede significar cosas diferentes para personas diferentes, pero creo que es seguro asumir que quieren acceder a los servicios web que se describen con WSDL.

En este escenario, es WCF el camino a seguir?

¿Fue útil?

Solución

WCF es con mucho el más pila compatible con los estándares en la plataforma Microsoft. Lo bueno es que es muy flexible para diferentes clientes "fuera de la caja", y si hay cosas que le causan dolor, la mayoría de ellos se puede cambiar a través de comportamientos personalizados sin demasiados problemas.

Otros consejos

Una alternativa que normalmente recomiendo es la integración sobre AMQP entre sus intermediarios de mensajes. Eso fue puede utilizar el paradigma de empuje en lugar del sondeo (que es muy potente y escalable en comparación)!

Se podría configurar su propio agente, tales como RabbitMQ, a nivel local. Entonces será deje que su socio de integración creó una. (Fácil: sólo tiene que descargar ).

Si su pareja es la integración del centro mismos datos, usted se ahorrará a asumir algunas divisiones red - que significa que podría compartir el corredor . Por otro lado, si usted está en diferentes redes, se puede configurar el agente en el modo rel="nofollow"> federación . (Run rabbitmq-plugins enable rabbitmq_federation y punto rel="nofollow"> al otro broker)

Ahora se puede utilizar, por ejemplo, MassTransit:

ServiceBusFactory.New(sbc =>
{
    sbc.UseRabbitMqRouting();
    sbc.ReceiveFrom("rabbitmq://rabbitmq.mydomain.local/myvhost/myapplication");
    // sbc.Subscribe( s => s ... );
});

, igual que lo haría cuando no está haciendo ningún tipo de integración.

Si nos fijamos en http: //rabbitmq.mydomain.local: 55672 / ahora se quiere encontrar la interfaz de administración para RabbitMQ. MassTransit crea un intercambio para cada tipo de mensaje (enviar un mensaje a tal que el intercambio se abren en abanico a todos los abonados), que se puede poner en las reglas de autorización.

reglas de autorización pueden estar en la forma de expresión regular por usuario o puede ser integrado en LDAP. Consulte la documentación de este.

También había necesidad de SSL en el caso de que vas por la WAN y usted no tiene un túnel IPSec - que la documentación está aquí: http://www.rabbitmq.com/ssl.html y habilita como este .

Eso es todo! Disfrutar!

Post scriptum: si se siente para una aventura que le ayudará a administrar toda su infraestructura como un efecto secundario, se puede echar un vistazo a títere . De marionetas es un gestor de provisioner y configuración de servidores; en este caso usted estaría interesado en la creación de SSL con la marioneta. En primer lugar, pedir un certificado subdominio de comodín para su dominio, a continuación, utilizar ese certificado para firmar otros certificados: se puede delegar esa - consulte la guía RabbitMQ donde dice "Ahora podemos generar la clave y certificados que la autoridad de certificación nuestra prueba utilizará ". - generar un certificado de firma-solicitud de certificado en lugar de crear una nueva autoridad - y dejar RMQ utilizar esto para SSL -. Será válida para el Internet

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