I punti di integrazione sono un posto perfetto per un ESB . Possono semplicemente attivare eventi basati sulla messaggistica.
Ciò può consentire di disporre di un servizio centrale che utilizza il framework e attiva automaticamente altre azioni tramite un messaggio. Questi messaggi possono essere distribuiti localmente o in remoto, a servizi che attendono i messaggi e si attiveranno al loro arrivo per completare qualsiasi azione tu voglia.
- Scheduler dice che è ora di eseguire stored proc per spostare i dati da db a un altro (un esempio di possibile lavoro pianificato)
- Lo scheduler invia un messaggio
TransferData
- Un servizio è in attesa di questo messaggio, collegato al bus di servizio, che attiva un processo memorizzato quando viene ricevuto il messaggio
- Il servizio può pubblicare un messaggio
ActivityStatus
sul bus di servizio
- Un'attività di registrazione può ascoltare il messaggio
ActivityStatus
e registrare lo stato dell'evento a fini di reporting
Ora un ESB ti compra alcune cose qui. Si può facilmente rimuovere il servizio che attende il messaggio TransferData
e sostituirlo con un altro che gestisce quel messaggio in un modo diverso.
Inoltre, se si dispone di importazioni di dati con file di importazione di grandi dimensioni, è possibile suddividerle. Non è difficile avere un servizio che ascolti la perdita di file, quindi legge il file e genera 1 messaggio che dice che i dati sono pronti o che suddivide il file in ogni record nel file di grandi dimensioni da elaborare. Rompere il file ti permette di tracciare più facilmente gli errori con un record specifico, correggerli e ripubblicarli nel sistema, ma a volte ordinare di più. Con l'avere ogni record nel file di grandi dimensioni come un singolo messaggio, è inoltre possibile scalare più servizi che consumano lo stesso messaggio, rende l'elaborazione del file in parallelo.
In .NET hai davvero due framework che si adattano come un ESB.
MassTransit
o
NServiceBus . Se vuoi davvero, prova BizTalk da MS ma probabilmente ti faranno tirare fuori i capelli. Sebbene tu possa utilizzare la Progettazione del flusso di lavoro se hai utenti non sviluppatori che configureranno i lavori.
So che MassTransit supporta in qualche modo eventi programmati, presumo che NServiceBus faccia altrettanto, anche se non lo so per certo.