Condividi tramite


Architettura dei servizi

In questa sezione vengono illustrati gli oggetti di database che definiscono la struttura di base di un'applicazione che utilizza Service Broker.

In fase di progettazione, nelle applicazioni di Service Broker vengono specificati gli oggetti seguenti:

  • Tipi di messaggi - Definiscono i nomi dei messaggi scambiati tra applicazioni. Eseguono facoltativamente la convalida dei messaggi.
  • Contratti- Specificano la direzione e il tipo di messaggi in una data conversazione.
  • Code- Archiviano i messaggi. Questo meccanismo di archiviazione consente la comunicazione asincrona tra i servizi. Le code di Service Broker offrono ulteriori vantaggi, ad esempio il blocco automatico dei messaggi nello stesso gruppo di conversazioni.
  • Servizi- Rappresentano endpoint indirizzabili per le conversazioni. I messaggi di Service Broker vengono inviati da un servizio a un altro. Un servizio specifica una coda in cui inserire i messaggi e i contratti per i quali il servizio può svolgere la funzione di destinazione. Un contratto fornisce a un servizio un set di tipi di messaggi ben definito.

Un'applicazione di Service Broker utilizza gli oggetti di SQL Server descritti nell'elenco precedente per eseguire una conversazione. Service Broker può essere utilizzato da qualsiasi programma in grado di eseguire istruzioni Transact-SQL in SQL Server. Le applicazioni possono essere costituite da stored procedure scritte in Transact-SQL o in un linguaggio compatibile con CLR oppure da programmi esterni che si connettono a un'istanza di SQL Server.

Nella figura seguente viene illustrato un servizio di Service Broker:

Relazioni tra gli oggetti di Service Broker

Come illustrato nella figura, il contratto ProcessExpenses specifica tre tipi di messaggi: SubmitExpense, AcceptDenyExpense e ReimbursementIssued. Nel contratto sono elencati i tipi di messaggi necessari per una conversazione che esegue un'attività di rimborso spese. Il contratto ProcessExpenses regola tutte le conversazioni tra il servizio ProcessExpense e un servizio che avvia una conversazione con il servizio ProcessExpense. Il servizio ProcessExpense archivia i messaggi in arrivo e in uscita nella coda ExpenseQueue. La stored procedure ExpenseProcessing riceve i messaggi da questa coda, li elabora e se è necessaria una risposta li restituisce alla coda per il routing all'istanza di Service Broker appropriata.

Vedere anche

Concetti

Tipi di messaggi
Contratti
Code
Creazione di applicazioni mediante Service Broker
Servizi

Altre risorse

Esercitazioni su Service Broker

Guida in linea e informazioni

Assistenza su SQL Server 2005