Che cos’è, come funziona e a cosa serve il middleware
Con il termine middleware si indica un insieme di componenti software che realizzano una macchina virtuale (ovvero un insieme di servizi fra loro coerenti e simulanti il comportamento di un unico elaboratore che fosse progettato per erogarli). La macchina virtuale è messa a disposizione delle applicazioni, che la usano mediante chiamate ai servizi da questa offerti. Il middleware realizza la macchina virtuale usando servizi offerti da apparati hardware e software di livello più basso, si veda a tal proposito la figura seguente.
Generalmente si distingue fra due tipi di middleware: generalizzato e orientato a specifici tipi di servizio. Il middleware generalizzato è il substrato della maggior parte delle interazioni tra componenti di un sistema distribuito; include gli strumenti di comunicazione, i servizi di sicurezza, i servizi di indirizzamento, i meccanismi di sincronizzazione, i servizi di accodamento.
Fra i middleware orientati a specifiche classi di servizio ricordiamo, a titolo di esempio:
- il middleware per accesso a basi di dati, come Open Data Base Connectivity – ODBC;
- il middleware per la gestione di transazioni, come quello previsto dal modello Distributed Transaction Processing – DTP del consorzio X/Open;
Nell’ambito del DOC, i middleware che permettono a un insieme complesso di oggetti distribuiti di cooperare su una rete di calcolatori sono riconducibili a tre tecnologie principali (si veda la figura seguente):
- middleware generalizzati a oggetti, per governare le complessità dei sistemi a oggetti distribuiti facendoli apparire come se fossero centralizzati;
- tecnologie basate su Web, per la diffusione dei servizi informatici a vaste popolazioni di utenti, accentrando presso un singolo nodo logico (Web site) la logica elaborativa;
- tecnologie di incapsulamento dei sistemi legacy, che permettono di usufruire dei sistemi informativi e transazionali offerti dalle vecchie architetture di elaborazione nel nuovo contesto tecnologico, valorizzando così gli investimenti pregressi.
Il ruolo che le tre classi tecnologiche hanno è quindi il seguente:
- i middleware generalizzati a oggetti realizzano la macchina virtuale che permette la progettazione e la realizzazione di un sistema distribuito come costituito da più oggetti applicativi fra loro cooperanti; nello sviluppo applicativo il sistema è modellato secondo un paradigma a oggetti, che promuove la modularità, la riusabilità e la manutenibilità e le problematiche proprie della distribuzione del sistema sulla rete di calcolatori sono affrontate dal middleware generalizzato a oggetti e da chi, a livello sistemistico, è chiamato a configurarlo e ottimizzarlo;
- le tecnologie Web based permettono la diffusione dei servizi informativi e transazionali offerti dagli oggetti di cui il sistema distribuito si compone su reti Internet, Intranet o Extranet; queste tecnologie costituiscono il mezzo più moderno di diffusione dei servizi all’utenza, sia per la praticità e la gradevolezza dell’interfaccia utente offerta, sia per l’economicità del supporto all’esercizio;
- le tecnologie di incapsulamento di sistemi legacy permettono di ottenere oggetti applicativi corrispondenti ai servizi transazionali (incapsulamento di transazioni host esistenti) o ai servizi informativi (incapsulamento di accesso a archivi di dati esistenti) offerti dai sistemi legacy; in questo modo i servizi offerti dai sistemi esistenti possono essere sfruttati nel nuovo contesto tecnologico, valorizzando gli investimenti pregressi e permettendo l’adozione di percorsi di migrazione graduali dalle vecchie alle nuove architetture di sistemi informatici.