15.06.2013 Views

Dispensa in PDF - Dipartimento di Scienze Ambientali, Informatica e ...

Dispensa in PDF - Dipartimento di Scienze Ambientali, Informatica e ...

Dispensa in PDF - Dipartimento di Scienze Ambientali, Informatica e ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Carnielli Efrem: Programmazione a componenti<br />

Pr<strong>in</strong>cipi <strong>di</strong> progettazione<br />

<strong>in</strong>izializzati, e sarà questo che si occuperà <strong>di</strong> riempirli appropriatamente.<br />

Sia A* un'istanza generica della classe A, essa oltre a quanto visto <strong>in</strong> precedenza ha<br />

un riferimento al clonatore per ricordarsi del d statico.<br />

L'esecuzione della funzione f come già vista porta alla creazione <strong>di</strong> un active<br />

record, nel quale si noti l'importanza <strong>di</strong> mantenere un puntatore ad A* per<br />

mantenere l'ambiente.<br />

3.1.2.2 Attributi statici e migrazione delle computazioni<br />

Gli attributi statici appena visti mi portano a pensare agli attributi statici dei server.<br />

DB access<br />

Mi dai la<br />

connessione ?<br />

Figura 3.6. Utilizzo <strong>di</strong> attributi statici per la connessione<br />

si<br />

A<br />

thread<br />

B<br />

connessione<br />

I thread sono istanze <strong>di</strong> classi. (figura 3.6).<br />

Per concedere la connessione richiesta dal DBA posso <strong>in</strong>serire nelle classi A,B,C un<br />

metodo d che gestisce la connessione. Posso farlo d<strong>in</strong>amicamente passandogli<br />

l'<strong>in</strong><strong>di</strong>rizzo <strong>di</strong> d.<br />

Alternativamente potrei mettere d come metodo statico, metodo che va <strong>in</strong><br />

esecuzione <strong>in</strong> un ambiente globale, (come visto quando abbiamo parlato <strong>di</strong><br />

attributi statici), accessibile a tutte le istanze della stessa classe. Avrei<br />

D.getConnection(). Il DBA sfrutta l'attributo statico <strong>di</strong> Java.<br />

Il getConnection statico può gestire solo connessioni statiche.<br />

Con riferimento alla figura 3.7, supponiamo <strong>di</strong> avere un browser che <strong>in</strong>via richieste<br />

ad un sistema, se una macch<strong>in</strong>a <strong>di</strong> questo sistema dovesse rompersi (fail over), tutte<br />

le computazioni <strong>in</strong> esecuzione possono essere migrate sulle altre macch<strong>in</strong>e.<br />

Se <strong>in</strong>vece sfrutto gli attributi statici ho un ambiente <strong>in</strong> cui non posso migrare le<br />

DB<br />

C<br />

57

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!