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 ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Carnielli Efrem: Programmazione a componenti<br />
Pr<strong>in</strong>cipi <strong>di</strong> progettazione<br />
Rimane il problema <strong>di</strong> come <strong>di</strong>stribuire bene i processi e qu<strong>in</strong><strong>di</strong> il carico <strong>di</strong> lavoro<br />
tra client e server. Abbiamo già parlato della <strong>di</strong>visione del carico <strong>di</strong> lavoro tra le<br />
macch<strong>in</strong>e, qui lo ripren<strong>di</strong>amo per dare dei consigli su come bilanciare il carico. In<br />
figura 3.9 viene presentato uno schema <strong>di</strong> <strong>di</strong>visione del carico <strong>di</strong> lavoro (ve<strong>di</strong> cap.<br />
2.15).<br />
Figura 3.9. Le <strong>di</strong>verse sud<strong>di</strong>visioni <strong>di</strong> carico tra client e server.<br />
La <strong>di</strong>visione ideale non è sempre possibile per motivi <strong>di</strong>versi (architettura<br />
preesistente, sicurezza, ecc.) qu<strong>in</strong><strong>di</strong> si aumenterà il carico <strong>di</strong> lavoro del client o del<br />
server. Nel primo caso, il server ha solamente il compito <strong>di</strong> gestire i dati: è il caso<br />
nel quale si ha un DB-server.<br />
Per alleggerire il carico del server (che solitamente è con<strong>di</strong>viso con più client)<br />
bisogna cercare <strong>di</strong> mettere il più possibile le computazioni nel client. Questo è<br />
possibile anche nelle applicazioni web: <strong>in</strong>vece <strong>di</strong> utilizzare script server-side (ve<strong>di</strong><br />
appen<strong>di</strong>ce) ad esempio php o asp si può usare javascript che verrà eseguito nel<br />
client. Mettere il più possibile sul client significa che se non è possibile spostare<br />
una computazione, deve essere lasciata sul server, come nel caso <strong>di</strong> contesti multiuser<br />
che necessitano <strong>di</strong> dati provenienti da altri client. Si potrebbe, <strong>in</strong> questo caso,<br />
spostare la computazione nel client e fare un lookup dei dati degli altri client nel<br />
server ma sarebbe svantaggioso <strong>in</strong> term<strong>in</strong>i <strong>di</strong> prestazioni.<br />
Dopo che abbiamo <strong>in</strong>trodotto anche il concetto <strong>di</strong> logica è bene imparare a<br />
ragionare <strong>in</strong> questi term<strong>in</strong>i, un'architettura ma<strong>in</strong>frame è tale poichè la logica<br />
applicativa è presente solo nel ma<strong>in</strong>frame appunto, mentre nei client non ve n'è<br />
traccia.<br />
64