Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La scalabilità è la capacità di un'applicazione di gestire un carico aggiuntivo con un aumento lineare dell'utilizzo delle risorse. La scalabilità è importante in qualsiasi applicazione distribuita. I limiti alla scalabilità sono in genere incentrati sull'uso delle risorse e sulle dipendenze create inavvertitamente nella progettazione dell'applicazione.
L'elenco seguente descrive i problemi di scalabilità e suggerisce soluzioni:
Risorse intracomputer. Il numero di thread e memoria disponibili può limitare la scalabilità. Usare un modello di threading che sia il più efficiente per la vostra applicazione.
Risorse tra computer. Il numero di computer disponibili per distribuire il carico di lavoro dell'applicazione può influire sulla scalabilità.
Affinità cliente. Due situazioni di affinità possono essere create inavvertitamente da un'applicazione: una situazione in cui l'applicazione dipende dallo stato dai dati inviati dal client con la relativa richiesta; e una situazione in cui l'applicazione richiede uno stato specifico del client. Evitare di progettare dipendenza di stato tra client e applicazione.
Affinità server. Un'applicazione COM+ può limitare la scalabilità creando un'affinità server, in cui l'applicazione dipende dal passaggio a un determinato computer server per informazioni. Questa affinità può verificarsi con molte applicazioni orientate al database. Il modo migliore per evitare un collo di bottiglia di affinità server consiste nel partizionare i dati su vari computer server. Ad esempio, dividere i dati dei clienti tra i server in base alla chiave a cui si accede più frequentemente o suddividere il database dei clienti tra più server usando il cognome del cliente. A titolo di esempio, Server1: a-f, Server2: g-m, Server3: n-z.
Nota
Il partizionamento dei dati può aggiungere una grande complessità alla logica di programmazione e deve essere eseguita solo dopo che sono state tentate altre opzioni per aumentare la scalabilità.
Durata dell'oggetto. Per essere scalabile, un'applicazione COM+ deve prestare particolare attenzione all'intervallo di vita degli oggetti. Mentre esiste un oggetto, usa risorse. È importante assicurarsi che le durate degli oggetti che contengono risorse costose vengano gestite attentamente. Per gli oggetti a richiesta elevata che non utilizzano risorse costose, pool di oggetti COM+ può aumentare la scalabilità perché è possibile modificare in modo amministrativo i valori di pooling per sfruttare qualsiasi hardware disponibile. Ed è un modo naturale per gestire le connessioni: ad esempio, se si dispone di una licenza per 20 connessioni SQL, è possibile stabilire che con l'impostazione Max Pool.
Raggruppamento dei componenti dell'applicazione. Per migliorare la scalabilità di un'applicazione COM+, i componenti di livello intermedio devono essere suddivisi in servizi dipendenti dal tempo e indipendenti dal tempo. In questo modo è possibile concentrarsi sull'uso di un servizio Microsoft Windows per implementare un'azione componente necessaria. Ad esempio, si può scegliere di utilizzare un servizio come accodamento messaggi o componenti in coda COM+ per gestire attività asincrone non dipendenti dal tempo.
Argomenti correlati