Home topics middleware Che cos'è il middleware?
Scopri la soluzione middleware di IBM Registrati per ricevere gli aggiornamenti cloud
Immagine che mostra l'uso del middleware per accelerare lo sviluppo di applicazioni distribuite semplificando la connettività

Data di pubblicazione: 31 luglio 2024
Autori: Stephanie Susnjara, Ian Smalley

Che cos'è il middleware?

Il middleware è un software che abilita uno o più tipi di comunicazione o connettività tra applicazioni o componenti in una rete distribuita, creando essenzialmente una "colla software" che lega insieme diversi sistemi.

Il middleware semplifica lo sviluppo delle applicazioni e accelera il time-to-market grazie a funzioni intelligenti che facilitano le connessioni tra piattaforme inizialmente non progettate per connettersi.

I vari tipi di middleware includono:

  • Broker di messaggi o monitor di elaborazione delle transazioni che si concentrano su un tipo di comunicazione.
  • Server di applicazioni web o middleware di dispositivi mobili che offrono la gamma completa di funzionalità di comunicazione e connettività necessarie per creare un particolare tipo di applicazione.
  • Middleware che consente agli sviluppatori di creare il proprio middleware personalizzato.
Modernizzare le operazioni IT: trasformare la gestione delle tecnologie middleware

Scopri in che modo IBM WebSphere Automation aiuta ad aumentare la maturità dell'automazione nella gestione middleware e ridurre i costi.

Contenuti correlati

Registrati per ricevere la guida sull'hybrid cloud

Origini del middleware

Introdotto per la prima volta alla fine degli anni '60, il termine middleware è stato coniato perché la prima versione agiva da mediatore tra un client front-end di applicazione e una risorsa back-end (ad esempio, un database, un'applicazione mainframe o un dispositivo hardware specializzato) da cui il cliente poteva richiedere i dati. In risposta all'aumento dell'informatica distribuita negli anni '80, l'uso del middleware è aumentato per collegare le nuove applicazioni ai sistemi legacy tradizionali.

Ma il middleware odierno va ben oltre questo ambito. Il middleware del portale, per esempio, comprende sia il front-end dell'applicazione sia gli strumenti per la connettività back-end. Il middleware del database solitamente include il proprio storage dei dati.

Il middleware si è evoluto fino a svolgere un ruolo essenziale nello sviluppo di applicazioni cloud-native moderne. Utilizza la tecnologia dei container, che consente al DevOps e ad altri team di connettersi alle risorse distribuite in ambienti multicloud. Questo supporta l'integrazione continua (CI) e la  distribuzione continua (CD), CI/CD, semplificando la codifica, il collaudo e l'implementazione delle applicazioni per una rapida scalabilità e la crescita del business.

Le aziende sfruttano sempre di più il middleware come offerta di servizi basati sul cloud per la comunicazione tra sistemi e come strumento di gestione dei dati. Uno studio di Technavio prevede che il mercato globale del middleware as a service (MWaaS) crescerà di 45,44 miliardi di dollari, con un CAGR del 17,73% tra il 2023 e il 2028. Lo studio attribuisce questa crescita all'adozione diffusa del cloud computing e a un aumento del serverless computing e dei microservizi.1

Come funziona il middleware?

Il middleware permette agli sviluppatori di creare applicazioni senza creare un'integrazione personalizzata ogni volta che devono connettersi a componenti applicativi (servizi o microservizi), fonti di dati, risorse informatiche o dispositivi.

Il middleware svolge questa funzione fornendo servizi che consentono a diverse applicazioni e servizi di comunicare attraverso framework di messaggistica comuni, come la notazione ad oggetti JavaScript (JSON), il Representational State Transfer (REST), il linguaggio di markup estensibile (XML), il simple object access protocol (SOAP) o i servizi web. In genere, il middleware fornisce anche servizi che consentono ai componenti scritti in linguaggi diversi, come Java, C++, PHP e Python, di comunicare tra loro.

Componenti Middleware

I componenti di un'architettura middleware standard includono:

  • Console di gestione del middleware: la console di gestione fornisce agli sviluppatori una panoramica degli eventi middleware, delle attività, delle configurazioni e così via.
  • Interfaccia client: l'interfaccia client sul front-end comunica con applicazioni back-end, database, microservizi o altri servizi.
  • Interfaccia middleware interna: l'interfaccia middleware interna consente alle istanze middleware di comunicare tra loro utilizzando uno speciale protocollo middleware.
  • Interfaccia della piattaforma: l'interfaccia della piattaforma si connette ai server back-end e ai diversi sistemi operativi (OS), garantendo le funzioni del middleware su tutte le piattaforme.
  • Manager dei contratti: il manager dei contratti definisce le regole di scambio dei dati che le applicazioni devono seguire.
  • Manager delle sessioni: il manager delle sessioni garantisce una comunicazione sicura tra middleware e applicazioni e assicura che non siano scadute.  
  • Manager di database: il manager di database fornisce l'integrazione con diversi database in base a requisiti specifici (come dati on-premise o basati sul cloud).
  • Runtime monitor: il runtime monitor tiene traccia di tutti i movimenti dei dati del middleware e fornisce report sulle attività per gli sviluppatori di software.
Casi d'uso del middleware per gli sviluppatori di software

Oltre a fornire un'interoperabilità che consente di risparmiare fatica, i servizi middleware aiutano gli sviluppatori di software nei seguenti modi.

Configurare e controllare connessioni e integrazioni

In base alle informazioni sulle richieste del client o dell'applicazione front-end, il middleware personalizza la risposta dell'applicazione o del servizio di back-end. Ad esempio, nell'applicazione di e-commerce di un rivenditore, la logica dell'applicazione middleware può ordinare i risultati della ricerca dei prodotti da un database di inventario back-end secondo la posizione del negozio più vicino in base all'indirizzo IP o alle informazioni sulla posizione nell'intestazione della richiesta HTTP.

Proteggi le connessioni e il trasferimento dei dati

Il middleware in genere stabilisce una connessione sicura dall'applicazione front-end alle origini dati back-end che utilizzano Transport Layer Security (TSL) o altri protocolli di sicurezza di rete. Può fornire funzionalità di autenticazione, richieste complesse di credenziali (nome utente e password) o certificati digitali da parte delle applicazioni front-end. 

Gestisci il traffico in modo dinamico tra sistemi distribuiti

Quando il traffico delle applicazioni aumenta, il middleware aziendale può scalare per distribuire le richieste dei clienti su più server, on-premise o nel cloud. Le funzionalità di elaborazione concorrente possono evitare problemi quando più client cercano di accedere contemporaneamente alla stessa fonte di dati back-end.

Ottimizza le applicazioni esistenti

Il middleware aiuta gli sviluppatori a modernizzare le applicazioni trasformando le applicazioni legacy monolitiche in applicazioni cloud basate sull'architettura dei microservizi.

Riduci le attività manuali

L'automazione del middleware aiuta gli sviluppatori a semplificare e automatizzare la gestione di attività IT complesse per migliorare l'efficienza globale.

Supporta DevSecOps

Il middleware supporta le metodologie DevSecOps (acronimo di sviluppo, sicurezza e operazioni) per aiutare i team a creare le app più rapidamente, riducendo al contempo i rischi per la sicurezza.

Tipi di middleware

Esistono molti tipi diversi di middleware. Alcuni si concentrano su tipi specifici di connettività, altri su particolari applicazioni, componenti applicativi e dispositivi. Alcuni combinano le funzionalità middleware per uno specifico compito di sviluppo software, mentre alcuni dei tipi di software middleware più noti e più comunemente utilizzati sono:

 

  • Middleware orientato ai messaggi (MOM)
  • Middleware per chiamata di procedura remota (RPC)
  • Middleware di dati o database
  • Middleware dell'interfaccia di programmazione delle applicazioni (API)
  • Middleware ORB (Object Request Broker)
  • Middleware transazionale
  • Middleware per lo streaming di dati asincrono
  • Middleware del dispositivo
  • Middleware del portale
  • Middleware di robotica
  • Middleware di integrazione delle applicazioni aziendali
Middleware orientato ai messaggi (MOM)

Il message-oriented middleware (MOM) consente ai componenti dell'applicazione che utilizzano protocolli di messaggistica diversi di comunicare e scambiarsi messaggi. Oltre a tradurre o trasformare i messaggi tra le applicazioni, il MOM gestisce il routing dei messaggi, in modo che arrivino sempre ai componenti corretti nell'ordine giusto. Alcuni esempi di MOM includono le code di messaggi e i broker di messaggi.

Middleware per chiamata di procedura remota (RPC)

Il middleware RPC (Remote Procedure Call) consente a un'applicazione di attivare una procedura in un'altra applicazione eseguita nello stesso computer o in un computer o una rete diversa, come se entrambe fossero parte della stessa applicazione nello stesso computer.

Middleware di dati o database

Il middleware di database o dati semplifica l'accesso e l'interazione con i database di back-end. Solitamente, il middleware di database è una forma di server di database SQL.

Middleware dell'interfaccia di programmazione delle applicazioni (API)

Il middleware di interfaccia di programmazione delle applicazioni (API) fornisce strumenti che gli sviluppatori possono utilizzare per creare, esporre e gestire le API per le proprie applicazioni, in modo che altri sviluppatori possano connettersi ad esse.

Alcuni middleware API includono strumenti per monetizzare le API, consentendo a diverse organizzazioni di utilizzarle a pagamento. Alcuni esempi di middleware API sono le piattaforme di gestione API, i gateway API e i portali per sviluppatori API.

Middleware ORB (Object Request Broker)

Il middleware ORB (Object Request Broker) funge da broker tra una richiesta proveniente da un'applicazione, un oggetto o un componente e l'adempimento di tale richiesta da parte di un altro oggetto o componente sulla rete distribuita.

Gli ORB funzionano con la Common Object Request Broker Architecture (CORBA), che consente a un componente software di effettuare una richiesta a un altro senza sapere dove è ospitato o che aspetto abbia la sua interfaccia utente (UI): il "brokering", o "intermediazione", gestisce queste informazioni durante lo scambio.

Middleware transazionale

Il middleware transazionale fornisce servizi per supportare l'esecuzione di transazioni di dati su una rete distribuita. Il middleware transazionale più noto è costituito dai monitor di elaborazione delle transazioni (TPM), che guidano le transazioni da una fase all'altra (eseguendo lo scambio di dati e aggiungendo, modificando o eliminando i dati dove necessario, tra le altre cose) fino al completamento.

Middleware per lo streaming di dati asincrono

Il data streaming asincrono middleware replica un flusso di dati in un archivio intermedio, permettendo di condividere i dati tra più applicazioni. Apache Kafka è una delle migliori esempi di piattaforme open source middleware per l'event streaming i in tempo reale.

Middleware del dispositivo

Il middleware dei dispositivi fornisce una serie mirata di funzionalità di integrazione e connettività per lo sviluppo di app per uno specifico sistema operativo mobile (OS).

Middleware del portale

Il middleware per i portali fornisce strumenti e risorse per integrare contenuti e funzionalità di varie applicazioni correlate "at the glass" o su un'unica schermata per creare una singola applicazione composita.

Middleware di robotica

Il middleware di robotica semplifica l'integrazione di hardware, firmware e software di robotica provenienti da più produttori e sedi.

Categorie di middleware

Esistono due classi di middleware di base: il middleware per applicazioni aziendali e il middleware per piattaforme.

Middleware di integrazione delle applicazioni aziendali

Il middleware di integrazione delle applicazioni aziendali consente a un'organizzazione di creare un hub di integrazioni aziendale che offre un modo standardizzato per connettere tutte le applicazioni, i componenti applicativi, i processi aziendali e le fonti di dati back-end nell'intera azienda.

Fino a circa un decennio fa, il middleware di integrazione delle applicazioni aziendali più diffuso era l'Enterprise Service Bus (ESB), che fungeva da hub di integrazione all'interno di un'architettura orientata ai servizi (SOA).

Oggi, l'integration-platform-as-a-service (iPaaS) consente alle organizzazioni di connettere applicazioni, dati, processi e servizi attraverso un cloud ibrido, ovvero una combinazione di ambienti on-premise, cloud privato e cloud pubblico. Questo aiuta le organizzazioni a evitare la fatica e le spese dell'acquisto, dell'installazione, della gestione e della manutenzione del middleware di integrazione (e dell'hardware su cui viene eseguito) all'interno del proprio data center. I principali fornitori di servizi cloud (CSP), tra cui Microsoft Azure, Google Cloud, Amazon Web Services (AWS) o IBM Cloud, offrono tutti soluzioni iPaaS.

Piattaforma middleware

Il middleware di piattaforma (o middleware di piattaforma applicativa) supporta lo sviluppo delle applicazioni. Accelera la distribuzione delle applicazioni fornendo un ambiente di hosting runtime, ad esempio un Java Runtime Environment (Java RE), contenitori o entrambi, per applicazioni o logica di business. Il middleware di piattaforma può includere o combinare server aziendali delle applicazioni, server web, sistemi di gestione dei contenuti (CMS) e altri tipi di middleware elencati in precedenza.

Qual è la differenza tra iPaaS e PaaS?

Sia iPaaS (Integration Platform as a Service) che platform as a Service (PaaS) sono soluzioni di elaborazione basate sul cloud che hanno scopi diversi. Mentre l'iPaaS si concentra sull'abilitazione dell'integrazione di app, dispositivi e sistemi, il PaaS fornisce alle organizzazioni una piattaforma per creare, eseguire e gestire le applicazioni.

PaaS è una scelta popolare per le piccole imprese e le startup con budget IT limitati perché consente ai team di creare app in modo molto più economico rispetto alla costruzione di piattaforme di sviluppo interne. iPaaS è la scelta migliore per le grandi organizzazioni e le aziende che gestiscono architetture complesse e dinamiche.

Detto questo, i servizi iPaaS spesso collaborano con i servizi cloud, inclusi PaaS e Software-as-a-Service (SaaS). Ad esempio, le organizzazioni possono combinare iPaaS con soluzioni di sviluppo PaaS (ad esempio Cloud Foundry, Red Hat OpenShift) o SaaS (GitHub).

Middleware e applicazioni cloud-native

Cloud-native è un approccio allo sviluppo delle applicazioni che sfrutta le tecnologie fondamentali del cloud computing per garantire sviluppo, distribuzione e gestione coerenti negli ambienti cloud ibridi.

Le attuali applicazioni cloud-native sono realizzate da microservizi e distribuite in container che utilizzano Kubernetes, una piattaforma di orchestrazione dei contenitori ampiamente utilizzata.

I microservizi sono componenti applicativi liberamente accoppiati che comprendono un proprio stack, possono essere distribuiti e aggiornati indipendentemente l'uno dall'altro e comunicano utilizzando una combinazione di API REST, broker di messaggi e flussi di eventi.

I container sono attività di esecuzione leggere che "impacchettano" il codice delle applicazioni, come quello dei microservizi, insieme alle librerie e alle dipendenze del sistema operativo necessarie per eseguirlo su qualsiasi cloud o infrastruttura IT tradizionale.

Insieme, queste e altre tecnologie creano una piattaforma potente che può essere sviluppata una volta sola e distribuita ovunque, per offrire nuove applicazioni di cloud ibrido e modernizzare i sistemi tradizionali legacy per l'uso nel cloud. Tuttavia, portano anche a un ambiente di sviluppo complesso che combina ancora più applicazioni software, fonti di dati, linguaggi di programmazione, strumenti e sistemi distribuiti.

Il middleware è in grado di risolvere parte di questa complessità. Tuttavia, l'esecuzione di applicazioni containerizzate con middleware convenzionali può aggiungere complessità come il sovraccarico dell'infrastruttura che i container erano dovevano eliminare. Per questo motivo, le piattaforme di sviluppo di applicazioni cloud includono middleware containerizzato o modularizzato, in modo che solo le funzioni di connettività necessarie vengano ripartite nei container. 

Casi di utilizzo di settore per il middleware
Gaming

Il middleware supporta lo sviluppo di giochi fungendo da motore di gaming. Questo livello software aiuta a integrare senza problemi video, audio e altri componenti di gioco cruciali.

Servizi finanziari

Per gli istituti finanziari, il middleware integra applicazioni e database dei clienti per supportare i servizi bancari digitali, fra cui l'elaborazione delle transazioni in tempo reale.

Assistenza sanitaria

L'accesso ai dati sanitari e la loro condivisione in modo sicuro sono sempre stati difficili. Il middleware è fondamentale per l'interoperabilità nel settore sanitario, consentendo un flusso continuo di dati su vari sistemi e applicazioni sanitari, come piattaforme di telemedicina e cartelle cliniche elettroniche (EHR).

eCommerce

Le organizzazioni di e-commerce utilizzano il middleware per collegare le loro piattaforme online con servizi di back-end cruciali, come l'elaborazione degli ordini per migliorare l'esperienza del cliente complessiva.

Produzione industriale

Nella produzione, il middleware aiuta a garantire l'integrazione dei sistemi di software aziendali, tra cui le piattaforme di pianificazione delle risorse aziendali (ERP) con altre per fornire una visione unificata delle operazioni. Questo aiuta a ottimizzare e semplificare la manutenzione, la supply chain, la garanzia di qualità e altro ancora.

Soluzioni correlate
IBM API Connect

Gestisci il tuo ecosistema API su più cloud, incluso il potenziamento delle attività di socializzazione e monetizzazione.

Esplora IBM API Connect
Software e soluzioni di integrazione IBM

Connetti, automatizza e libera il potenziale di business con il software della piattaforma di integrazione.

Esplora il software e le soluzioni di IBM Integration
Soluzioni per la distribuzione delle applicazioni

Scopri in che modo le soluzioni IBM per la distribuzione delle applicazioni aiutano a creare nuove applicazioni cloud-native e a modernizzare le app esistenti.

Esplora le soluzioni per la distribuzione delle applicazioni
Soluzioni IBM iPaaS

Fornisci connettività a tutte le app e ai dati con funzionalità di integrazione per tutti.

Esplora le soluzioni IBM iPaaS
Risorse Cos'è un broker di messaggi?

I broker di messaggi sono una tecnologia di comunicazione tra applicazioni che supporta architetture cloud native, basate su microservizi, serverless e ibride.

Che cos'è iPaaS (integration-platform-as-a-service)?

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

Cos'è un'API REST?

Le API REST rappresentano un modo flessibile e leggero per integrare le applicazioni e sono oggi il metodo più comune per collegare componenti nelle architetture di applicazioni basate su microservizi.

Cos'è la gestione delle API?

La gestione delle API è il processo scalabile di creazione, pubblicazione e gestione delle connessioni API (Application Programming Interface) all'interno di un ambiente aziendale e multicloud.

Accelera l'efficienza con l'ottimizzazione e l'AI

L'integrazione del machine learning (ML) e dell'intelligenza artificiale (AI) nell'ottimizzazione del processo decisionale (DO) è essenziale per migliorare l'efficienza nei processi aziendali.

I dati in tempo reale apportano valore aziendale in tempo reale

Utilizzare i dati in tempo reale è essenziale per il successo aziendale.

Fai il passo successivo

Utilizza IBM API Connect per proteggere e gestire le API aziendali durante il loro ciclo di vita. Aiuta te e i tuoi clienti a creare, gestire, proteggere, socializzare e monetizzare costantemente le API aziendali ed è disponibile anche come API management platform altamente scalabile su IBM Marketplace e AWS.

Esplora API connect Prenota una demo live