Applicazioni di Service Broker
Le applicazioni di Service Broker sono costituite da uno o più programmi e da oggetti di database utilizzati da tali programmi. La comunicazione tra le applicazioni avviene tramite la creazione di conversazioni tra componenti indipendenti definiti servizi e lo scambio di messaggi all'interno di tali conversazioni. Service Broker viene utilizzato nelle applicazioni tramite l'esecuzione di istruzioni Transact-SQL in un database di SQL Server.
Componenti dell'applicazione
Un'applicazione Service Broker è costituita da:
Uno o più programmi che mettono a disposizione un'attività o un insieme di attività correlate. All'esterno di SQL Server, le applicazioni possono essere scritte in qualsiasi ambiente di programmazione in grado di eseguire istruzioni Transact-SQL in SQL Server. All'interno di SQL Server, le applicazioni possono essere scritte come stored procedure tramite Transact-SQL o un linguaggio compatibile con Common Language Runtime (CLR).
Un servizio che espone le attività ad altri servizi. Un servizio è un oggetto Service Broker che fornisce un nome indirizzabile per un set di attività correlate. Altri servizi avviano conversazioni con questo servizio per eseguire le attività.
Un contratto e i tipi di messaggio che definiscono la struttura e la direzione dei messaggi utilizzati nelle comunicazioni tra i servizi.
Una coda in cui inserire i messaggi per il servizio.
Se si desidera, route e associazioni a servizi remoti. Le route associano un indirizzo di rete al nome di un servizio remoto. Le associazioni ai servizi remoti associano un nome di servizio a un'entità di database locale. In Service Broker il certificato associato all'entità specificata viene utilizzato per gestire l'autorizzazione per il servizio remoto e la crittografia dei messaggi scambiati con il servizio remoto. Service Broker consente la configurazione delle route e delle associazioni ai servizi remoti durante la distribuzione dell'applicazione senza che sia necessario apportare modifiche all'applicazione. In questo modo gli amministratori possono spostare i servizi e modificare le credenziali di protezione senza apportare modifiche al codice dell'applicazione. Per ulteriori informazioni sulla configurazione delle route e delle associazioni a servizi remoti, vedere Amministrazione (Service Broker).
DML per Service Broker
In genere, nell'applicazione vengono impostati gli oggetti di definizione del servizio al momento dell'installazione. Durante l'esecuzione dell'applicazione i messaggi vengono inviati e ricevuti tramite Service Broker Data Manipulation Language (DML). Le istruzioni DML possono essere suddivise in tre categorie di vasta portata: messaggi, conversazioni e gruppi di conversazioni.
Messaggi
In Service Broker sono disponibili le seguenti operazioni per supportare l'utilizzo dei messaggi:
L'istruzione SEND invia un messaggio su una conversazione specifica.
L'istruzione RECEIVE riceve uno o più messaggi da una coda. Tutti i messaggi ricevuti appartengono allo stesso gruppo di conversazione.
Conversazioni
In Service Broker sono disponibili le seguenti operazioni per supportare l'utilizzo delle conversazioni:
L'istruzione BEGIN DIALOG CONVERSATION avvia una conversazione tra due servizi. Poiché la conversazione interessa esattamente due servizi, costituisce un dialogo.
L'istruzione END CONVERSATION termina un lato di una conversazione.
L'istruzione BEGIN CONVERSATION TIMER invia un messaggio relativo al timer del dialogo a un lato di una conversazione in un momento specifico.
L'istruzione GET_TRANSMISSION_STATUS restituisce una descrizione dell'ultimo errore di trasmissione per una conversazione. Se l'ultimo tentativo di trasmissione di un messaggio per la conversazione è stato eseguito correttamente, l'istruzione non restituisce una descrizione.
Gruppi di conversazioni
In Service Broker sono disponibili due operazioni per l'utilizzo dei gruppi di conversazioni:
L'istruzione GET CONVERSATION GROUP restituisce l'identificatore del gruppo di conversazioni per il messaggio successivo da ricevere in una coda. L'istruzione blocca anche il gruppo di conversazioni.
L'istruzione MOVE CONVERSATION sposta una conversazione da uno gruppo di conversazioni a un altro. L'istruzione blocca sia il gruppo di conversazioni originale che il gruppo di conversazioni di destinazione.
Vedere anche