2010-04-27 16 views
84

He oído hablar del NServiceBus, pero realmente no he entendido de qué se trata. Afirman ser "El bus de servicio de código abierto más popular para .net".¿Qué es un bus de servicio y cuándo lo necesito?

Así; ¿Qué es un "bus de servicio" y cuándo lo necesito?

+0

Llego muy tarde a la fiesta, no voy a publicar esto como respuesta porque no es así, pero en resumen, si no sabes por qué lo necesitas, es probable que no ... resuelve un problema específico que probablemente no tenga al conectar aplicaciones y le da a su empresa una API centralizada. – War

+2

@Wardy No estoy de acuerdo con su declaración. El hecho de que no entienda algo o no sepa de qué se trata no significa que no lo ayude a saberlo –

+0

Eso no fue una excusa para ignorarlo, sino más bien señalar que el servicio de autobús es un término arrojado alrededor cuando se encuentra con el tipo de problema que soluciona, por lo que lo necesitará o no lo hará y, por lo tanto, nunca tendrá que preocuparse por ello. – War

Respuesta

63

Puede pensar en un bus de servicio como Ethernet de SOA.

Lo primero y más importante es que introduce un lenguaje de identificación de cosas, como una dirección IP en Ethernet. Este nombre no es algo inherentemente físico.

A continuación, tiene algo físico involucrado en cada nodo, como una cola en el caso de un bus para admitir comunicación semiconectada, o una tarjeta Ethernet en la metáfora.

Más allá de lo físico, existe la parte de "protocolo" de la comunicación, como la pila OSI para Ethernet. Con el bus, esta es la biblioteca del cliente utilizada por el código de la aplicación.

En última instancia, puede ver un bus de servicio como el siguiente nivel superior de abstracción para la construcción de sistemas distribuidos. Puede usarlo también para la comunicación entre el cliente y el servidor para proporcionarle mensajes de una sola dirección duraderos, así como para que el servidor envíe las notificaciones al cliente.

Específicamente, encontrará que NServiceBus es bastante liviano y fácil de usar una vez que hace las paces con su uso de la tecnología de colas: su elección de RabbitMQ, MSMQ, Azure Storage Queues y Azure Service Bus.

+0

Thx! ¡Creo que ahora tengo una idea general! En realidad, estaba haciendo esta pregunta para estar un poco preparada para la sesión que está celebrando esta noche, pero no parece que lo haga. – stiank81

9

Echa un vistazo al artículo de Wikipedia para Enterprise Service Bus.

Un bus de servicio actúa como una capa más de abstracción en la búsqueda interminable para implementar una buena arquitectura orientada a servicios. El Bus de servicio puede manejar parte del trabajo pesado visto detrás de una buena arquitectura orientada a servicios como la mensajería, el enrutamiento y la coordinación de servicios.

Si no está seguro de por qué querría algo así, le sugiero que lea sobre lo que hace una buena Arquitectura Orientada a Servicios. El libro que realmente me abrió los ojos y se demostró la diferencia entre simplemente tener los servicios web y tener una verdadera arquitectura orientada a servicios fue de Thomas Erl Service-Oriented Architecture: Concepts, Technology, and Design

+0

Entonces, ¿puedo usarlo para hacer la comunicación entre una aplicación cliente de escritorio y un servidor? Donde el servidor es interno, eso es. – stiank81

+0

Podría. También puede usarlo para la comunicación entre diferentes servicios, diferentes versiones de diferentes servicios, etc. (incluidas situaciones en las que los servicios utilizan diferentes protocolos). –

10

Este término fue introducido con SOA que es en cierto modo el sucesor (como palabra de moda) de EAI.

¿Cuándo lo necesita? Buena pregunta. Viene con mucha complejidad.

Una regla de oro podría por si resuelve más problemas de los que causa.

Ser serio si tiene un entorno heterogéneo y desea alinear (diferentes) aplicaciones (utilizando una tecnología diferente) con procesos comerciales. entonces podría ser útil usar BPEL (pero esto presenta problemas por migraton) para orquestación y coreografía

EDIT: Lo que no está en la wikipedia, es práctica: Un ESB puede I.G. adaptar usando conectores especiales, aplicaciones antiguas de terminales para usar con Corba o Java Enterprise eso quiere decir interoperabilidad. El inconveniente son los más de 100 'Estándares' alrededor de SOAP que no cooperan sin un esfuerzo enorme.

Definitivamente lo necesita si tiene que interconectar los sistemas de TI dentro de los seis meses posteriores a la fusión de 2 grandes compañías de seguros.

+0

Entonces, ¿en mi aplicación de escritorio que tiene una comunicación "simple" con un lado del servidor no hay necesidad de agrandarse con un Bus de servicio? ¿Me puede ayudar a implementar un modelo push del servidor? ¿O será más dolor que ganancia en este escenario también? – stiank81

+0

@ stiank81 lo siento, leí el bus de servicio (Enterprise) y las sinapsis disparadas. Revisé su enlace a NServiceBus que apuntan a lo mismo, no necesita algo así en una aplicación de servidor cliente. Se entiende por concepto para múltiples aplicaciones involucradas en un proceso de negocios. Si te funcionara? Si resuelve más problemas de los que causa. – stacker

+0

Thx. No, no suena como algo que me gustaría para mi aplicación actual. – stiank81

Cuestiones relacionadas