Si tratta di software polivalente che fornisce alle applicazioni servizi aggiuntivi a quelli offerti dal sistema operativo. Qualsiasi software intermediario tra il kernel e le app utente può essere definito middleware.
Nick Gall, analista e teorico dei sistemi, afferma che “il middleware è il software dei software”. Non offre le funzioni di un'app tradizionale, ma connette software ad altro software. Può essere immaginato come il sistema idrico dell'infrastruttura IT, perché consente ai dati di fluire da un'applicazione all'altra.
Il middleware è un software risiede tra un sistema operativo e le applicazioni eseguite in esso. Il middleware, che essenzialmente funziona come un livello di traduzione nascosto, consente la comunicazione e la gestione dei dati per le applicazioni distribuite. Può essere considerato come un raccordo, in quanto connette due applicazioni per trasmettere dati e database dall'una all'altra. L'uso del middleware consente agli utenti di effettuare richieste, ad esempio inviare moduli in un Web browser o consentire al server Web di restituire pagine Web dinamiche in base al profilo dell'utente.
Tra gli esempi di middleware comune, sono inclusi middleware del database, middleware del server applicazioni, middleware orientato ai messaggi, middleware Web e monitor di elaborazione delle transazioni. Ogni programma fornisce in genere servizi di messaggistica per consentire alle applicazioni di comunicare tramite framework di messaggistica, ad esempio il protocollo SOAP (Simple Object Access Protocol), servizi Web, REST (Representational State Transfer) e JSON (JavaScript Object Notation).
Sebbene tutto il middleware svolga funzioni di comunicazione, il tipo che un'azienda sceglie di usare dipende dal servizio e dal tipo di informazioni da comunicare, ad esempio autenticazione per la sicurezza, gestione delle transazioni, code di messaggi, server applicazioni, server Web e directory. È anche possibile usare il middleware per l'elaborazione distribuita con azioni che si verificano in tempo reale invece che con l'invio di dati.
La definizione di Middleware include diverse tipologie di software, tra cui:
Le API sono insiemi di strumenti, definizioni e protocolli con i quali vengono realizzati software applicativi, che consentono ai tuoi prodotti o servizi di comunicare con altri prodotti o servizi senza che sia necessario sapere come vengono implementati.
Piattaforme per lo sviluppo di app, ad esempio Red Hat® JBoss® Enterprise Application Platform. Un server delle applicazioni è una struttura che offre le funzionalità per creare le app e il server sul quale eseguirle.
È il processo che combina dati da diverse applicazioni tramite una struttura di integrazione, la quale può limitare il numero connessioni point-to-point dell'azienda così da evitare dipendenze complesse e potenziali punti di errore.
La visualizzazione unificata dei dati di diverse sorgenti consente agli utenti di accedere a tali dati ed utilizzarli.
L'elaborazione delle transazioni conserva l'integrità di un sistema, in genere un database o un file system, attraverso il controllo delle app delle transazioni, l'applicazione di criteri e logiche di business o l'invio di aggiornamenti del database.
La chiamata di procedura remota è un'interazione client-server che consente di distribuire su più piattaforme un'applicazione o una funzionalità.
Un miglioramento della RPC con l'aggiunta di un meccanismo di accodamento che permette l'esecuzione asincrona dell'interazione client-server nelle situazioni in un cui un nodo di destinazione è lento o occupato.
Interazione client-server che consente di accedere a servizi remoti come se fossero locali. I processi server eseguono la registrazione nell'ORB e i client contattano l'ORB per individuare i servizi richiesti.