28.05.2013 Views

Studio e Realizzazione di Architetture Concorrenti per Sistemi ad ...

Studio e Realizzazione di Architetture Concorrenti per Sistemi ad ...

Studio e Realizzazione di Architetture Concorrenti per Sistemi ad ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Architetture</strong> <strong>Concorrenti</strong> in prodotti a larga <strong>di</strong>ffusione - DCOM 17<br />

Particolarmente interessanti, a questo riguardo, sono i meccanismi <strong>di</strong> pinging,<br />

mantenimento del numero <strong>di</strong> riferimenti, e la garbage collection <strong>di</strong>stribuita: quando un<br />

client richiede una connessione <strong>ad</strong> un server, il componente interessato, che può<br />

avere <strong>di</strong>verse comunicazioni già in corso con vari utilizzatori, incrementa un<br />

contatore che tiene traccia del numero <strong>di</strong> connessioni in corso; durante l'interazione<br />

client-component, un servizio <strong>di</strong> pinging controlla se il chiamante è ancora attivo sulla<br />

connessione e, in caso contrario (<strong>per</strong> problemi <strong>di</strong> rete o crash sul lato client), può<br />

decrementare il "reference count"; quando un componente rileva, dal contatore, <strong>di</strong><br />

non essere più referenziato da alcuno, può provvedere da solo alla liberazione delle<br />

risorse che occupava.<br />

2.2.2.2 Platform Neutrality<br />

DCOM è uno standard inter-piattaforma: consente ai componenti <strong>di</strong> non essere<br />

vincolati a macchine specifiche, ma <strong>di</strong> poter interagire con oggetti DCOM residenti in<br />

ambienti o<strong>per</strong>ativi eterogenei.<br />

L'approccio <strong>di</strong> DCOM alla "Platform Neutrality" è <strong>per</strong>ò molto <strong>di</strong>fferente da soluzioni<br />

<strong>ad</strong>ottate in altri sistemi platform-independent come Java.<br />

Una Java Virtual Machine (JVM) è un'astrazione <strong>di</strong> calcolatore, che fornisce<br />

un'interfaccia comune, in<strong>di</strong>pendente dalla macchina reale sottostante, e che<br />

consente a tutti gli applicativi Java <strong>di</strong> essere eseguiti nel medesimo tipo d'ambiente. I<br />

sorgenti Java sono quin<strong>di</strong> semi-compilati in un "bytecode" specifico delle JVM, che<br />

provvedono <strong>ad</strong> eseguire, in modalità interpretata, le loro istruzioni. Sebbene questo<br />

sistema consenta <strong>ad</strong> ogni bytecode, <strong>di</strong> essere riconosciuto da ogni JVM in<br />

esecuzione su qualsiasi tipo <strong>di</strong> macchina, le prestazioni <strong>di</strong> un linguaggio interpretato<br />

sono inferiori a quelle ottenibili da un co<strong>di</strong>ce compilato specificatamente <strong>per</strong> un dato<br />

sistema.<br />

DCOM, invece, offre uno standard binario <strong>per</strong>-platform: ogni utente può acquistare<br />

componenti specifici <strong>per</strong> il proprio ambiente, che vengono quin<strong>di</strong> ottimizzati, ma che<br />

possono comunicare con componenti <strong>di</strong> altre piattaforme in maniera standar<strong>di</strong>zzata.<br />

In aggiunta, viene assicurata l'intero<strong>per</strong>abilità con altri standard platform-neutral<br />

(quali Java) [Bibl. 8].

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

Saved successfully!

Ooh no, something went wrong!