Operazione: Descrizione distribuzione
Questa attività definisce l'architettura di distribuzione per un sistema distribuito in termini di nodi fisici e delle rispettive interconnessioni.
Discipline: Analisi e progettazione
Scopo
Per descrivere in che modo la funzionalità del sistema viene distribuita sui nodi fisici. Questa attività si riferisce solo ai sistemi distribuiti.
Relazioni
Descrizione principale

Questa attività definisce l'architettura di distribuzione per un sistema in termini di nodi fisici e delle rispettive interconnessioni. Nella sezione Compito: Analisi strutturale, è stato definito un Modello di distribuzione iniziale. In questa attività, il modello di distribuzione (nello specifico la Vista di distribuzione) è perfezionato per rispecchiare l'attuale progettazione.

Nella fase iniziale di elaborazione, la vista di distribuzione è solitamente alquanto preliminare, ma nella fase finale dovrebbe essere ben definita.

Passi
Analisi dei requisiti di distribuzione
Scopo Per definire l'ambito in cui è richiesta la distribuzione per il sistema. 

I requisiti di distribuzione sono gestiti da:

  • Richieste di distribuzione nel dominio del problema (requisiti funzionali) - Sulla base di specifici requisiti al sistema potrebbe essere richiesto di accedere o utilizzare un particolare processore distribuito, database o sistema legacy per eseguire parte delle relative funzioni.
  • Configurazione di distribuzione selezionata - Specifiche configurazioni di distribuzione impongono dei vincoli alla distribuzione del sistema definendo il numero ed i tipi di nodi e le rispettive interconnessioni. Ad esempio, la selezione di una configurazione di distribuzione multi-tier significa tipicamente che si dispone di un nodo client, un nodo del server web e un nodo del server delle applicazioni. Una specifica configurazione di distribuzione è di solito selezionata durante il processo Compito: Analisi strutturale ed è quindi perfezionata durante questa attività.
  • Risorse richieste (requisiti non funzionali) - La funzionalità ad elevata velocità o ad elevato calcolo potrebbe richiedere specifiche configurazioni hardware particolarmente adatte per gestire le richieste della funzionalità; ad esempio, un processore veloce, molta memoria RAM oppure un'enorme quantità di spazio su disco. Un relativo esempio è l'elaborazione di segnali digitali che potrebbe richiedere processori specializzati o dedicati.
  • La necessità della tolleranza di errore (requisiti non funzionali) - Il requisito può essere quello di avere processori di backup.
  • Problematiche di scalabilità e flessibilità (requisiti non funzionali) - L'elevato numero di utenti simultanei è semplicemente eccessivo per essere supportato su un qualsiasi processore singolo. Potrebbe essere disponibile un requisito per bilanciare il carico della funzionalità del sistema, fornendo pertanto scalabilità e prestazioni massime.
  • Considerazioni economiche - Le prestazioni associate al prezzo di processori più piccoli ed economici non possono trovare riscontro nei modelli più grandi.

Così come per molti problemi strutturali, questi requisiti possono essere alquanto esclusivi in modo reciproco. E' probabile che si abbia, almeno inizialmente, dei requisiti in conflitto. La classificazione dei requisiti in termini di importanza faciliteranno l'utente nella risoluzione del conflitto.

Definizione della configurazione di rete
Scopo Definire la configurazione e la topologia della rete. 

In questa fase, il Modello di distribuzione iniziale (definito nella sezione Compito: Analisi strutturale) viene perfezionato per supportare i requisiti di distribuzione identificati nella fase.

La topologia della rete e le potenzialità e caratteristiche dei processori e delle unità sulla rete determineranno la natura e il livello di distribuzione possibile nel sistema.

E' necessario acquisire le seguenti informazioni:

  • il layout fisico della rete, includendo le ubicazioni
  • i nodi presenti sulla rete e le relative configurazioni e funzioni (la configurazione comprende sia l'hardware e il software installati sui nodi, il numero di processori, la quantità di spazio su disco, la quantità di memoria, la quantità di scambi e così via) - l'hardware installato sul nodo può essere rappresentato utilizzando le unità
  • la larghezza di banda di ciascun segmento sulla rete
  • la presenza di percorsi ridondanti sulla rete (ciò aiuta a fornire le capacità di tolleranza dell'errore)
  • Lo scopo primario del nodo, includendo:
    • nodi delle stazioni di lavoro utilizzate dagli utenti
    • nodi del server in cui si verificano elaborazioni prive di processi primari (headless); per semplificare la configurazione del server, i componenti possono essere inclusi in un'immagine headless, che non contiene componenti dell'interfaccia utente.
    • configurazioni speciali utilizzate per lo sviluppo e il test
    • altri particolari processori
  • progettazione IP e funzioni (ad esempio DNS, VPN), se esiste una rete IP
  • il ruolo svolto da Internet nella soluzione

Esempio

Il seguente diagramma illustra la vista di distribuzione per lo sportello automatico ATM

Diagramma della vista di distribuzione per lo sportello automatico ATM

Vista di distribuzione per lo sportello automatico ATM

Il diagramma illustra due nodi (l'ATM stesso, che è il punto focale di questo esempio) e il server della rete ATM, attraverso cui vengono effettuate tutte le connessioni con la rete interbancaria. Sebbene il server della rete ATM non sia compreso nell'ambito progettuale dei costruttori dell'ATM, di seguito viene illustrato come la larghezza di banda della rete può essere documentata. Il diagramma mostra anche i processi e thread che vengono eseguiti sul nodo ATM, che sono descritti nella fase successiva Allocazione degli elementi di sistema nei nodi.

Annotare l'uso del significato per documentare la capacità del processore e della rete. Tale documentazione può anche essere presentata nei campi della documentazione del Nodo (o delle unità), qualora non sia visualizzata nel diagramma.

Allocazione degli elementi di sistema nei nodi
Scopo  Per distribuire il carico di lavoro del sistema. 

In questa fase, gli elementi del sistema vengono assegnati ai nodi definiti nella precedente fase. E' possibile avere una descrizione della distribuzione sia da una prospettiva logica che fisica.

La distribuzione logica associa gli elementi logici (classi, sottosistemi o le relative istanze) ai nodi. Possono essere compresi i thread di controllo. Ad esempio, una distribuzione logica potrebbe indicare che il sottosistema AuctionManager è distribuito al server di applicazioni.

La distribuzione fisica associa i file ai nodi. Ad esempio, una distribuzione fisica potrebbe indicare che il file CloseAuctionTimer.class è distribuito al server76.

La distrubuzione è un'area in cui il totale può essere, ed è di solito, inferiore al totale delle parti. Il raggiungimento di reali benefici alla distribuzione richiede lavoro e una pianificazione attenta. Quando si decide quali elementi saranno associati ai nodi, considerare quanto segue:

  • la capacità del nodo (in termini di memoria e potenza di elaborazione)
  • larghezza di banda del mezzo di comunicazione (bus, LAN, WAN)
  • disponibilità di hardware e link di comunicazione, reinstradamento
  • requisiti per la ridondanza e la tolleranza di errore
  • requisiti dei tempi di risposta
  • requisiti di produttività

Gli elementi vengono assegnati ai nodi con lo scopo di ridurre la quantità di traffico su rete; gli elementi che interagiscono ad elevati livelli dovrebbero essere collocati sullo stesso nodo; laddove gli elementi interagiscono meno frequentemente possono risiedere su nodi diversi. La decisione fondamentale, quella che a volta richiede l'iterazione, è in che punto tracciare la linea. La distribuzione dei processi su due o più nodi richiede una verifica più attenta dei modelli di comunicazione interna del processo nel sistema. Si verifica spesso una percezione superficiale che la distribuzione dell'elaborazione può scaricare il lavoro da una macchina ad un'altra. Nella pratica, il carico di lavoro aggiuntivo della comunicazione interna del processo può facilmente annullare tutti i vantaggi acquisiti dalla distribuzione del carico di lavoro se il processo e le delimitazioni del nodo non sono attentamente considerati.

Esempio

Il diagramma di esempio precedente, la Vista di distribuzione per lo sportello automatico ATM, illustra per il nodo ATM l'allocazione dei processi sul nodo. Esiste un singolo processo (Principale ATM), che è costituito da tre thread di controllo separati (Interfaccia client, Interfaccia di rete ATM e Controller unità).

Alcuni ambienti forniscono dei meccanismi per automatizzare e/o semplificare la distribuzione. Per esempio:

  • Cluster: un cluster è un gruppo di server che operano come un'unità, includendo tipicamente delle funzioni come il failover e il bilanciamento del carico. In questo caso, la vista di distribuzione descrive in che modo gli elementi del sistema sono allocati nei cluster, oltre a come i cluster sono configurati per essere associati ai nodi fisici.
  • Contenitori: negli ambienti di componenti, come J2EE, Microsoft .NET e altri, i componenti vengono eseguiti all'interno di un ambiente di calcolo logico denominato contenitore. Un contenitore può essere considerato un "nodo logico". La vista di distribuzione descrive in che modo gli elementi di sistema vengono distribuiti ai contenitori e successivamente in che modo i contenitori vengono assegnati ai nodi fisici.

L'utilizzo di tali meccanismi di distribuzione supportati e le relative modalità di configurazione e associazione ai nodi fisici per soddisfare i requisiti di distribuzione devono essere documentati come parte della vista di distribuzione.

Ulteriori informazioni