Scalabilità di Service Broker
Service Broker è progettato per migliorare la scalabilità sia orizzontale che verticale delle applicazioni del database. In questo argomento vengono fornite linee guida di carattere generale per la progettazione di applicazioni in grado di sfruttare tutte le opportunità offerte da Service Broker.
L'attivazione di Service Broker rende più semplice la scalabilità verticale delle applicazioni man mano che aumenta la potenza di elaborazione disponibile. Il blocco dei gruppi di conversazione consente di evitare facilmente i motivi di contesa più comuni tra i programmi del servizio.
Ogni applicazione di Service Broker è composta da un set di attività in grado di funzionare in modo indipendente. Il routing di Service Broker consente alle applicazioni che utilizzano questo servizio lo spostamento di servizi in istanze diverse. Il routing dei messaggi viene gestito da Service Broker e non dall'applicazione. È quindi possibile distribuire servizi a computer diversi senza modificare il codice dell'applicazione.
Quando si progetta un'applicazione di Service Broker in funzione della scalabilità, è necessario considerare con attenzione la relazione tra le attività all'interno dell'applicazione stessa. I servizi creati con una netta separazione tra le attività offrono generalmente i risultati migliori negli scenari di scalabilità verticale e orizzontale. In genere, è consigliabile suddividere le attività tra servizi diversi in base ai dati necessari per completare ogni attività. Quando due attività correlate non modificano gli stessi dati, è opportuno considerare la possibilità di strutturare tali attività come servizi diversi. Ad esempio, un'applicazione per la gestione dei clienti e un'applicazione per la gestione delle spedizioni richiedono l'accesso all'indirizzo dei clienti. Solo la prima, tuttavia, può modificare l'indirizzo. In questo caso, i messaggi all'applicazione per la gestione delle spedizioni possono contenere le informazioni sull'indirizzo necessarie per spedire un ordine. L'applicazione per la gestione delle spedizioni e l'applicazione per la gestione dei clienti non devono necessariamente accedere alle stesse tabelle. Queste attività possono quindi essere nettamente separate e assegnate a servizi diversi.