Utilizzi tipici di Service Broker

Service Broker può risultare utile per tutte le applicazioni che devono eseguire operazioni di elaborazione asincrona o distribuire l'elaborazione tra computer diversi. Gli utilizzi tipici di Service Broker sono:

  • Trigger asincroni

  • Elaborazione affidabile di query

  • Raccolta affidabile di dati

  • Elaborazione distribuita sul lato server per le applicazioni client

  • Consolidamento dei dati per le applicazioni client

  • Elaborazione batch su vasta scala

Trigger asincroni

Molte applicazioni che utilizzano trigger, ad esempio i sistemi di elaborazione delle transazioni in linea (OLTP), possono trarre vantaggio dall'utilizzo di Service Broker. Un trigger inserisce nella coda un messaggio che richiede un'attività da un servizio di Service Broker. Il trigger non esegue l'attività richiesta ma crea un messaggio contenente informazioni sull'attività da eseguire e invia il messaggio al servizio che la esegue. Il trigger restituisce quindi il controllo all'applicazione.

Quando viene eseguito il commit della transazione originale, Service Broker recapita il messaggio al servizio di destinazione. Il programma che implementa il servizio esegue l'attività in una transazione separata, in modo da consentire alla transazione originale di eseguire immediatamente il commit. L'applicazione evita i rallentamenti del sistema che si verificano se la transazione originale rimane aperta durante l'esecuzione dell'attività.

Elaborazione affidabile di query

Alcune transazioni devono elaborare le query in modo affidabile, indipendentemente da eventuali errori del computer, interruzioni dell'alimentazione elettrica o problemi analoghi. Un'applicazione di questo tipo può inviare le query mediante l'invio di messaggi a un servizio di Service Broker. L'applicazione che implementa il servizio legge il messaggio, esegue la query e restituisce i risultati. Tutte queste operazioni vengono eseguite nella stessa transazione. Se si verifica un errore prima del commit della transazione, viene eseguito il rollback dell'intera transazione e il messaggio ritorna nella coda. Quando il computer viene ripristinato, l'applicazione viene riavviata ed elabora nuovamente il messaggio.

Raccolta affidabile di dati

Le applicazioni che raccolgono dati da un insieme ampio di origini possono utilizzare Service Broker per garantire che questa operazione venga eseguita in modo affidabile. Un'applicazione e-commerce con più siti, ad esempio, può utilizzare Service Broker per inviare informazioni sulle transazioni a un archivio dati centrale. Service Broker garantisce un recapito asincrono e affidabile dei messaggi. Pertanto, ogni sito può continuare l'elaborazione delle transazioni anche se perde temporaneamente la connessione all'archivio dati centrale. La protezione di Service Broker impedisce l'indirizzamento errato dei messaggi e contribuisce a proteggere i dati durante il transito.

Elaborazione distribuita sul lato server per le applicazioni client

L'utilizzo di Service Broker può risultare vantaggioso anche per le applicazioni di grandi dimensioni che accedono a più database di SQL Server. Un'applicazione Web per l'acquisto di libri, ad esempio, può utilizzare Service Broker sul lato server per scambiare informazioni tra i diversi database contenenti i dati relativi agli ordini, ai clienti, alle scorte e ai crediti. Le funzionalità di Service Broker per l'accodamento e il recapito affidabile dei messaggi consentono all'applicazione di continuare ad accettare ordini anche quando uno dei database non è disponibile o è sottoposto a un carico di lavoro eccessivo. In questo scenario Service Broker agisce come framework di un sistema OLTP distribuito.

Consolidamento dei dati per le applicazioni client

Service Broker garantisce una serie di vantaggi anche per le applicazioni che utilizzano o visualizzano informazioni da più database contemporaneamente. Un'applicazione di gestione del servizio clienti, ad esempio, che esegue il consolidamento dei dati da più posizioni in un'unica schermata può utilizzare Service Broker per l'esecuzione delle richieste multiple in parallelo, anziché in sequenza, abbreviando in modo significativo i tempi di risposta. L'applicazione invia le richieste ai diversi servizi in parallelo e quando i servizi rispondono alle richieste raccoglie le risposte e visualizza i risultati.

Elaborazione batch su vasta scala

Le applicazioni che eseguono operazioni di elaborazione batch su vasta scala possono usufruire delle funzionalità di accodamento ed elaborazione parallela di Service Broker per la gestione di grandi volumi di dati in modo rapido ed efficiente. L'applicazione archivia i dati da elaborare in una coda di Service Broker. Un programma legge periodicamente il contenuto della coda ed elabora i dati. Un'applicazione può trarre vantaggio dalle affidabili funzionalità di messaggistica di Service Broker per eseguire l'elaborazione batch in un computer diverso da quello da cui ha origine la richiesta.