Condividi tramite


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.