Ho sentito parlare di NServiceBus , ma non ho capito bene cosa sia. Affermano di essere "Il bus di servizio open source più popolare per .net".
Così; cos'è un "bus di servizio" e quando ne ho bisogno?
Ho sentito parlare di NServiceBus , ma non ho capito bene cosa sia. Affermano di essere "Il bus di servizio open source più popolare per .net".
Così; cos'è un "bus di servizio" e quando ne ho bisogno?
Risposte:
Puoi pensare a un bus di servizio come l'Ethernet di SOA.
Prima di tutto, introduce un linguaggio di identificazione delle cose, come un indirizzo IP in Ethernet. Questo nome non è qualcosa di intrinsecamente fisico.
Successivamente, hai qualcosa di fisico coinvolto su ciascun nodo, come una coda nel caso di un bus per supportare la comunicazione semi-connessa o una scheda Ethernet nella metafora.
Oltre al solo fisico, c'è la parte "protocollo" della comunicazione, come lo stack OSI per Ethernet. Con il bus, queste sono le librerie client utilizzate dal codice dell'applicazione.
In definitiva, è possibile considerare un bus di servizio come fornire il livello successivo più elevato di astrazione per la creazione di sistemi distribuiti. È possibile utilizzarlo anche per la comunicazione client-server per fornire una messaggistica unidirezionale durevole e per il server per inviare le notifiche al client.
In particolare, scoprirai che NServiceBus è abbastanza leggero e facile da usare una volta che avrai fatto pace con l'uso della tecnologia di accodamento: a tua scelta RabbitMQ, MSMQ, tabelle SQL regolari, Amazon SQS, code di archiviazione di Azure e bus di servizio di Azure.
Consulta l'articolo di Wikipedia per Enterprise Service Bus .
Un bus di servizio funge da ulteriore livello di astrazione nella ricerca senza fine di implementare una buona architettura orientata ai servizi. Il bus di servizio è in grado di gestire parte del lavoro pesante visto dietro una buona architettura orientata ai servizi come la messaggistica, il routing e il coordinamento dei servizi.
Se non sei sicuro del motivo per cui vorresti qualcosa del genere, ti suggerisco di leggere su ciò che rende una buona architettura orientata ai servizi. Il libro che mi ha davvero aperto gli occhi e ha dimostrato la differenza tra avere solo servizi Web e avere una vera architettura orientata ai servizi è stata l'architettura orientata ai servizi di Thomas Erl : concetti, tecnologia e design
Questo termine è stato introdotto con SOA che è in un certo senso il successore (come parola d'ordine) di EAI .
Quando ne hai bisogno? Questa è una buona domanda. Viene fornito con molta complessità.
Una regola pratica potrebbe essere adottata se risolve più problemi di quanti ne causa.
Essere seri se si dispone di un ambiente eterogeneo e si desidera allineare applicazioni (diverse) (utilizzando tecnologie diverse) con i processi aziendali. Quindi potrebbe essere utile utilizzare BPEL (ma questo introduce problemi di migrazione) per orchestrazione e coreografia
EDIT: Ciò che non c'è su wikipedia, è pratica: un ESB può adattarsi utilizzando connettori speciali, vecchie applicazioni di terminale da utilizzare con Corba o Java Enterprise che si intende per interoperabilità. Lo svantaggio sono gli oltre 100 "standard" attorno a SOAP che non collaborano senza sforzi enormi.
Ne hai sicuramente bisogno se devi interconnettere i sistemi IT entro sei mesi dalla fusione di 2 grandi società di assicurazioni.