Tecnologie per sistemi a oggetti distribuiti: la macchina virtuale
Come già detto nell’articolo dei Sistemi centralizzati e sistemi distribuiti, le aspettative che si ripongono in un’infrastruttura ad oggetti distribuiti riguardano la disponibilità di una macchina virtuale unitaria che permetta l’esecuzione di un sistema ad oggetti mascherando ai realizzatori e agli utenti tutte le problematiche riguardanti la distribuzione degli oggetti sulla rete. In termini tecnici, l’infrastruttura deve garantire un insieme di servizi di trasparenza per gestire in modo autonomo problemi specifici di distribuzione.
I servizi di trasparenza principali attesi da una moderna infrastruttura sono:
- trasparenza di accesso, ovvero reperimento e raggiungimento, da parte dell’oggetto cliente, di un oggetto che offre un servizio;
- trasparenza di replica, ovvero possibilità di configurare e variare le modalità di replica degli oggetti senza che ciò determini necessità di variazione nella realizzazione e nell’uso del sistema;
- trasparenza di distribuzione, ovvero invarianza delle modalità di realizzazione delle richieste di servizio, sia che queste siano offerte da oggetti locali o remoti;
- trasparenza di migrazione, ovvero possibilità di cambiare dinamicamente l’allocazione degli oggetti sulla rete;
- tolleranza ai guasti, ovvero continuità di erogazione dei servizi previsti, eventualmente secondo modalità degradate predefinite, anche in presenza di malfunzionamenti in uno o più nodi della rete e della conseguente indisponibilità degli oggetti;
- trasparenza di linguaggio, cioè possibilità di realizzare gli oggetti del sistema con diverse metodologie e diversi ambienti di sviluppo;
- trasparenza rispetto all’eterogeneità tecnologica, ovvero omogeneità applicativa su reti costituite anche da macchine eterogenee nell’hardware e nel software di base
Attualmente sono disponibili sul mercato una serie di soluzioni architetturali e tecnologiche che si propongono come infrastrutture per il D.O.C. e rispondono parzialmente ai requisiti tecnici sopra espost. Nel seguito vengono brevemente illustrate le principali proposte:
- OMG CORBA: è uno standard industriale per la realizzazione del middleware di comunicazione fra oggetti in una rete di sistemi eterogenei. Spesso, per questo tipo di specifiche, il termine “standard” è utilizzato in modo improprio. Nel mondo dei sistemi aperti è più corretto distinguere:
- specifiche proprietarie, cioè definite da un singolo fornitore;
- specifiche tecniche pubbliche, cioè preparate e diffuse da organizzazioni internazionali, non a scopo di lucro (ad esempio OMG, X/OPEN, OSF);
- norme de iure, ovvero e messe dagli organismi internazionali autorizzati (quali IEEE, ISO).
CORBA rientra più propriamente nel secondo insieme; DCOM invece appartiene alla prima categoria e per esso si parla di standard “de facto” a causa della larga diffusione della piattaforma Windows, su cui è attualmente basato.
- Microsoft DCOM: è la soluzione proposta da Microsoft per la comunicazione fra componenti software che operano in ambiente distribuito;
- Sistemi distribuiti e Java: non è di per sé una soluzione completa per le architetture distribuite, ma basa la possibilità di distribuzione delle applicazioni sulla realizzazione di componenti scritte nel linguaggio Java, proposto come linguaggio universale, ed eseguibili su qualsiasi nodo della rete (hardware e sistema operativo) che disponga di un interprete Java;
- le tecnologie WEB: si propongono come “distributore” di informazioni ed applicazioni mediante l’utilizzo del linguaggio HTML e del protocollo HTTP o di estensioni di entrambi e l’adozione del browser come strumento per la presentazione.