Il Middleware: un insieme di componenti software
Con il termine Middleware (si veda a tal proposito l’articolo L’idea alla base del middleware), in informatica, si indica spesso un insieme di componenti hardware e software che realizzano una macchina virtuale ovvero un insieme di servizi fra loro coerenti e simulanti il comportamento di un unico sistema informatico progettato per fornirli. La macchina virtuale è messa a disposizione delle applicazioni che devono fornire i servizi richiesti, che la usano mediante chiamate ai servizi da questa offerti. Detto ciò, il middleware realizza la macchina virtuale usando i servizi offerti dagli apparati hardware e software di livello più basso, si veda a tal prosposito la figura seguente.
Midlleware generalizzato e orientato ai servizi
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.
Nel contesto DOC, i middleware permettono di fatto, a un insieme complesso di oggetti distribuiti, di cooperare su una rete di calcolatori sono riconducibili a tre tecnologie principali:
- 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.
Mentre, per quanto riguarda i middleware orientati a specifiche classi di servizi a titolo di esempio si può prendere il middleware per l’accesso a basi di dati, come Open Data Base Connectivity (ODBC).