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:
Newsletter di settore
Resta al passo con le tendenze più importanti e interessanti del settore relative ad AI, automazione, dati e altro con la newsletter Think. Leggi l'Informativa sulla privacy IBM.
L'abbonamento sarà fornito in lingua inglese. Troverai un link per annullare l'iscrizione in tutte le newsletter. Puoi gestire i tuoi abbonamenti o annullarli qui. Per ulteriori informazioni, consulta l'Informativa sulla privacy IBM.
Il termine middleware è stato introdotto per la prima volta alla fine degli anni '60. È stato coniato perché la versione iniziale in genere fungeva da mediatore tra il front-end di un'applicazione (client) e una risorsa back-end. Questa risorsa potrebbe essere un database, un'applicazione mainframe o un dispositivo hardware specializzato da cui il cliente potrebbe richiedere 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 ha previsto che il mercato globale del middleware as a service (MWaaS) aumenterà di 45,44 miliardi di dollari, con un tasso di crescita annuale composto (CAGR) del 17,73% dal 2023 al 2028. Lo studio attribuisce questa crescita all'adozione diffusa del cloud computing e a un aumento del serverless computing e dei microservizi.1
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 facilita la comunicazione tra diverse applicazioni e servizi fornendo servizi essenziali. Raggiunge questa comunicazione tramite framework di messaggistica comuni, come JavaScript Object Notation (JSON), Representational State Transfer (REST), Extensible Markup Language (XML), Simple Object Access Protocol (SOAP) o 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.
I componenti di un'architettura middleware standard includono:
Oltre a fornire un'interoperabilità che consente di risparmiare fatica, i servizi middleware aiutano gli sviluppatori di software nei seguenti modi.
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. Nell'applicazione di e-commerce di un rivenditore, la logica applicativa middleware può ordinare i risultati della ricerca dei prodotti da un database di inventario back-end in base alla sede del negozio più vicino. Questo ordinamento si basa sull'indirizzo IP o sulle informazioni sulla posizione nell'intestazione della richiesta HTTP.
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.
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.
Il middleware aiuta gli sviluppatori a modernizzare le applicazioni trasformando le applicazioni legacy monolitiche in applicazioni cloud basate sull'architettura dei microservizi.
L'automazione del middleware aiuta gli sviluppatori a semplificare e automatizzare la gestione di attività IT complesse per migliorare l'efficienza globale.
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.
Esistono molti tipi diversi di middleware. Alcuni si concentrano su tipi specifici di connettività, altri su particolari applicazioni, componenti applicativi e dispositivi. Alcuni combinano funzionalità middleware per un'attività specifica di sviluppo software. Ecco alcuni dei tipi di software middleware più noti e più comunemente utilizzati:
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.
Il middleware RPC (Remote Procedure Call) consente a un'applicazione di attivare una procedura in un'altra applicazione, sullo stesso computer o su un computer o rete diverso. Questo processo fa funzionare entrambe le applicazioni come se facessero parte della stessa applicazione sullo stesso computer.
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.
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.
Il middleware Object Request Broker (ORB) funge da intermediario tra una richiesta proveniente da un oggetto o componente dell'applicazione e la sua soddisfazione da parte di un altro oggetto o componente. Questo processo avviene all'interno della rete distribuita, garantendo una comunicazione e un'interazione senza interruzioni tra i componenti.
Gli Object Request Broker (ORB) operano con la Common Object Request Broker Architecture (CORBA), che consente a un componente software di fare una richiesta a un altro senza sapere dove è ospitato l'altro o che aspetto abbia la sua interfaccia utente (UI). Il meccanismo di "brokeraggio" gestisce queste informazioni durante lo scambio.
Il middleware transazionale fornisce servizi per supportare l'esecuzione di transazioni di dati su una rete distribuita. Il middleware transazionale più noto sono i Transaction Processing Monitor (TPM), che guidano le transazioni da una fase all'altra. Gestiscono lo scambio di dati aggiungendo, modificando o eliminando i dati secondo necessità fino al completamento della transazione.
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.
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).
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.
Il middleware di robotica semplifica l'integrazione di hardware, firmware e software di robotica provenienti da più produttori e sedi.
Esistono due classi di middleware di base: il middleware per applicazioni aziendali e il middleware per piattaforme.
Il middleware di integrazione delle applicazioni consente a un'organizzazione di creare un hub di integrazione aziendale. Questo sistema 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. Questa soluzione 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.
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), container o entrambi, per applicazioni o logica di business. Il middleware della piattaforma può includere o combinare server di applicazione aziendali, server web, sistemi di gestione dei contenuti (CMS) e altri tipi di middleware menzionati in precedenza.
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).
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 container 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.
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.
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.
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).
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.
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.
L'automazione basata su AI aumenta l'agilità attraverso API, app, eventi, file e B2B/EDI.
Sblocca il potenziale aziendale con le soluzioni di integrazione di IBM, che collegano applicazioni e sistemi per accedere rapidamente e in modo sicuro ai dati d'importanza critica.
Sblocca nuove funzionalità e promuovi l'agilità aziendale con i servizi di consulenza cloud di IBM. Scopri come creare insieme soluzioni, accelerare la trasformazione digitale e ottimizzare le prestazioni attraverso strategie di hybrid cloud e collaborazioni con gli esperti.