Condividi tramite


Progettazione per la scalabilità

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.

Progettazione per la disponibilità

progettazione per la distribuzione

Progettazione per la Sicurezza