Cos'è il middleware?
Il middleware accelera lo sviluppo di applicazioni distribuite semplificando la connettività tra applicazioni, componenti applicativi e origini dati di back-end.
Iscriviti alla newsletter di IBM
Sfondo nero e blu
Cos'è il middleware?

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.

Come funziona il middleware

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

  • Configurazione e controllo delle connessioni e delle integrazioni. In base alle informazioni contenute in una richiesta di un'applicazione client o front-end, il middleware può personalizzare la risposta dall'applicazione o dal servizio back-end. Nell'applicazione di e-commerce di un rivenditore, la logica applicativa del middleware può ordinare i risultati della ricerca del prodotto provenienti da un database di inventario back-end in base alla posizione del negozio più vicino, in base all'indirizzo IP o alle informazioni sulla posizione presenti nell'intestazione della richiesta HTTP.

  • Protezione delle connessioni e del trasferimento dati.  Il middleware di norma stabilisce una connessione sicura dall'applicazione front-end alle origini dati back-end utilizzando TLS (Transport Layer Security) o un altro protocollo di sicurezza di rete. Può inoltre fornire funzionalità di autenticazione, definendo una verifica delle credenziali (nome utente e password) o dei certificati digitali per le richieste delle applicazioni front-end. 

  • Gestione dinamica del traffico sui sistemi distribuiti. Quando si verificano picchi del traffico delle applicazioni, il middleware aziendale può eseguire la scalabilità per distribuire le richieste dei client su più server, on-premise o nel cloud. E le funzionalità di elaborazione simultanea possono prevenire problemi quando più client tentano di accedere contemporaneamente alla stessa origine dati di back-end.
Tipi di middleware

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.

Middleware di integrazione delle applicazioni aziendali


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).

Middleware della piattaforma


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.

Middleware e applicazioni native del cloud

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.

Soluzioni correlate
WebSphere Application Server

Un ambiente di runtime del server Java flessibile e dotato di misure di sicurezza complete per le applicazioni aziendali

Esplora WebSphere Application Server
IBM API Connect

Gestisci il tuo ecosistema di API su più cloud con un aumento degli sforzi di socializzazione e monetizzazione

Esplora IBM API Connect
Automazione basata sull'AI

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.

Esplora l'automazione basata sull'AI
Risorse Cos'è un broker di messaggi?

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.

Cos'è iPaaS (Integration Platform as a Service)?

iPaaS è una soluzione basata su cloud che standardizza e semplifica l'integrazione negli ambienti on-premise e cloud.

Cos'è un'API REST?

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.

Passa alla fase successiva

IBM MQ offre una messaggistica collaudata, ad alte prestazioni e dotata di misure di sicurezza complete per gli ambienti ibridi e multicloud. Connetti applicazioni e microservizi in data center privati, in ambienti ibridi o multicloud e all'edge della tua azienda. Sfrutta il valore dei tuoi dati mission-critical esistenti per ottenere degli insight in tempo reale. E proteggi il tuo business da dati errati ed errori delle applicazioni con un recapito dei messaggi eseguito esattamente una sola volta: IBM MQ non perderà mai un messaggio né recapiterà un messaggio più di una volta.

Scopri di più su IBM MQ