Il middleware è un software che consente uno o più tipi di comunicazione o connettività tra due o più applicazioni o componenti applicativi in una rete distribuita. Semplificando la connessione di applicazioni che non sono state progettate per connettersi tra loro e fornendo funzionalità per connetterle in modo intelligente, il middleware semplifica lo sviluppo delle applicazioni e accelera il time-to-market.
Esistono molti tipi di middleware. Alcuni, come i broker di messaggi o i monitor di elaborazione delle transazioni, si concentrano su un solo tipo di comunicazione. Altri, come i server di applicazioni web o il middleware per dispositivi mobili, forniscono l'intera gamma di capacità di comunicazione e connettività necessarie per creare uno specifico tipo di applicazione. Altri ancora, come un'offerta iPaaS (Integration Platform as a Service) o un EBS (Enterprise Service Bus), funzionano come hub di integrazione centralizzato per collegare tutti i componenti in un'azienda. (Esiste persino un middleware che consente agli sviluppatori di creare il proprio middleware personalizzato).
Il middleware è stato chiamato così perché il primo middleware di norma fungeva da mediatore tra un front-end dell'applicazione, o client, e una risorsa di back-end, ad esempio un database, un'applicazione mainframe o un dispositivo hardware specializzato, a cui il client avrebbe potuto richiedere dati.
Ma il middleware odierno opera ben oltre questo ambito. Il middleware del portale, ad esempio, comprende il front-end dell'applicazione e gli strumenti per la connettività del back-end; il middleware del database in genere include il proprio archivio dati. E, come leggerai di seguito, una classe emergente di middleware sfrutta la tecnologia dei container per aiutare gli sviluppatori a connettersi alle risorse distribuite su più cloud.
Al livello più elementare, il middleware consente agli sviluppatori di creare applicazioni senza dover creare un'integrazione personalizzata ogni volta che devono connettersi a componenti dell'applicazione (servizi o microservizi), origini dati, risorse di calcolo o dispositivi.
Lo fa fornendo servizi che consentono a diverse applicazioni e servizi di comunicare utilizzando framework di messaggistica comuni come JSON (JavaScript Object Notation), REST (REpresentational State Transfer), XML (eXtensible Markup Language), SOAP (Simple Object Access Protocol) o servizi web. Di norma, il middleware fornisce anche servizi che consentono a componenti scritti in diversi linguaggi - come ad esempio Java, C++, PHP e Python - di comunicare tra loro.
Oltre a fornire questa interoperabilità che consente di risparmiare lavoro, il middleware include anche servizi che aiutano gli sviluppatori
Esistono molti tipi diversi di middleware. Alcuni di questi si concentrano su specifici tipi di connettività, altri su applicazioni, componenti applicativi e dispositivi specifici; alcuni combinano funzionalità middleware per un'attività di sviluppo specifica. Alcuni dei tipi di software middleware più conosciuti e più comunemente utilizzati includono:
Il middleware MOM (Message-Oriented Middleware) consente ai componenti dell'applicazione che utilizzano protocolli di messaggistica diversi di comunicare per scambiare messaggi. Oltre a convertire - o trasformare - i messaggi tra le applicazioni, MOM gestisce l'instradamento dei messaggi in modo che arrivino sempre ai componenti corretti nell'ordine corretto. Alcuni esempi di MOM includono code di messaggi e broker di messaggi.
Il middleware RPC (Remote Procedure Call) consente a un'applicazione di attivare una procedura in un'altra applicazione - in esecuzione sullo stesso computer o su un computer o una rete diversi - come se entrambe facessero parte della stessa applicazione sullo stesso computer.
Il middleware di dati o database semplifica l'accesso e l'interazione con i database di back-end. Di norma il middleware del database è una forma di server di database SQL.
Il middleware API (Application Programming Interface) fornisce strumenti che gli sviluppatori possono utilizzare per creare, esporre e gestire le API per le loro applicazioni, in modo che altri sviluppatori possano connettersi ad esse. Alcuni middleware API includono strumenti per la monetizzazione delle API, consentendo ad altre organizzazioni di utilizzarle a pagamento. Esempi di middleware API includono piattaforme di gestione delle API, gateway API e portali per sviluppatori di API.
Il middleware ORB (Object Request Broker) funge da "broker" - ovvero da intermediario - tra una richiesta proveniente da un oggetto o componente dell'applicazione e il soddisfacimento di tale richiesta da parte di un altro oggetto o componente sulla rete distribuita. Gli ORB operano con la CORBA (Common Object Request Broker Architecture), che consente a un componente software di effettuare una richiesta di un altro, senza sapere dove l'altro sia ospitato o che aspetto abbia la sua interfaccia utente: il "brokering" gestisce queste informazioni durante lo scambio.
Il middleware transazionale fornisce servizi per supportare l'esecuzione di transazioni di dati in una rete distribuita. I più noti middleware transazionali sono i TPM (Transaction Processing Monitor), che assicurano che le transazioni procedano da un passaggio all'altro - eseguendo lo scambio di dati, aggiungendo/modificando/eliminando dati dove necessario, ecc. - fino al completamento.
Il middleware di streaming dei dati asincrono replica un flusso di dati in un archivio intermedio, consentendo la condivisione dei dati tra più applicazioni. Apache Kafka è uno degli esempi più noti di middleware per lo streaming dei dati in tempo reale.
Il middleware del dispositivo fornisce un set mirato di funzionalità di integrazione e connettività per lo sviluppo di applicazioni per uno specifico sistema operativo per dispositivi mobili.
Il middleware del portale fornisce strumenti e risorse per l'integrazione di contenuti e funzionalità da varie applicazioni correlate a livello di un singolo schermo per creare un'unica applicazione composita.
Il middleware di robotica semplifica il processo di integrazione dell'hardware, firmware e software della robotica da più produttori e ubicazioni.
Il middleware di integrazione delle applicazioni aziendali consente a un'organizzazione di stabilire un hub di integrazione aziendale - un modo standardizzato per connettere tutte le applicazioni, i componenti delle applicazioni, i processi di business e le origini dati di back-end nell'intera azienda.
Fino a circa dieci anni fa, il principale middleware di integrazione delle applicazioni aziendali era ESB (Enterprise Service Bus), che fungeva da hub d'integrazione in una SOA (Service-Oriented Architecture). Oggi iPaaS (Integration Platformas a Service) consente a un'organizzazione di connettere all'interno del proprio data center applicazioni, dati, processi e servizi in ambienti on-premise, di cloud privato e di cloud pubblico, senza il lavoro e le spese di acquisto, installazione, gestione e manutenzione del middleware di integrazione (e dell'hardware su cui viene eseguito).
Il middleware della piattaforma (o middleware della piattaforma applicativa) può supportare ulteriormente lo sviluppo di applicazioni e accelerare la distribuzione delle applicazioni fornendo un ambiente di hosting runtime, come ad esempio un ambiente Java RE (Java Runtime Environment) o container, oppure entrambi, per l'applicazione o la logica di business. Il middleware della piattaforma può includere o combinare server di applicazioni aziendali, server web e sistemi di gestione dei contenuti, nonché gli altri tipi di middleware elencati in precedenza.
Quello nativo del cloud è un approccio allo sviluppo delle applicazioni che sfrutta le tecnologie di cloud computing fondamentali, con l'obiettivo di fornire uno sviluppo, un'implementazione e una gestione coerenti in ambienti on-premise, di cloud privato o di cloud pubblico.
In pratica, oggi le applicazioni native del cloud sono applicazioni create da microservizi e implementate in container gestiti tramite Kubernetes. I microservizi sono componenti applicativi accoppiati in modo lasco che comprendono il proprio stack e possono essere implementati e aggiornati indipendentemente l'uno dall'altro e comunicano tra loro utilizzando una combinazione di API REST, broker di messaggi e flussi di eventi. I container sono degli eseguibili leggeri che impacchettano il codice dell'applicazione, come i microservizi, abbinati alle sole librerie e dipendenze del sistema operativo necessarie per eseguire tale codice su qualsiasi infrastruttura IT o cloud tradizionale.
Insieme, queste e le tecnologie correlate, creano una potente piattaforma di tipo "sviluppa una volta, implementa ovunque" per la distribuzione di nuove applicazioni di cloud ibrido e per la modernizzazione dei tradizionali sistemi legacy nel cloud. Ma danno luogo anche a un ambiente di sviluppo complesso che combina ancora più applicazioni software, origini dati, linguaggi di programmazione, strumenti e sistemi distribuiti.
Il middleware può risolvere parte di questa complessità, ma l'esecuzione di applicazioni containerizzate con il middleware convenzionale può aggiungere complessità proprie, nonché il tipo stesso di sovraccarico dell'infrastruttura che i container sono stati progettati per eliminare. Per questo motivo, diffuse piattaforme di sviluppo di applicazioni per il cloud, quali Cloud Foundry (link esterno a IBM) e Red Hat Open Shift, si sono evolute per includere il middleware containerizzato - middleware modularizzato in modo da impacchettare in un container solo le funzioni di connettività richieste.
Un ambiente di runtime del server Java flessibile e dotato di misure di sicurezza complete per le applicazioni aziendali
Gestisci il tuo ecosistema di API su più cloud con un aumento degli sforzi di socializzazione e monetizzazione
Dai tuoi flussi di lavoro di business alle tue operazioni IT, la nostra automazione basata sull'AI ha quello che fa per te. Scopri come si stanno trasformando le aziende leader.
I broker di messaggi sono una tecnologia di comunicazioni tra applicazioni che supporta architetture native del cloud, basate su microservizi, serverless e di cloud ibrido.
iPaaS è una soluzione basata su cloud che standardizza e semplifica l'integrazione negli ambienti on-premise e cloud.
Le API REST forniscono un modo flessibile e leggero per integrare le applicazioni e sono emerse come il metodo più comune per connettere i componenti nelle architetture di microservizi.