Data di pubblicazione: 31 luglio 2024
Autori: Stephanie Susnjara, Ian Smalley
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:
Scopri in che modo IBM WebSphere Automation aiuta ad aumentare la maturità dell'automazione nella gestione middleware e ridurre i costi.
Registrati per ricevere la guida sull'hybrid cloud
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
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.
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. 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.
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 le funzionalità middleware per uno specifico compito di sviluppo software, mentre alcuni dei tipi di software middleware più noti e più comunemente utilizzati sono:
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 eseguita nello stesso computer o in un computer o una rete diversa, come se entrambe fossero parte della stessa applicazione nello 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 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.
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.
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 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.
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.
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 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.
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.
Gestisci il tuo ecosistema API su più cloud, incluso il potenziamento delle attività di socializzazione e monetizzazione.
Connetti, automatizza e libera il potenziale di business con il software della piattaforma di integrazione.
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.
Fornisci connettività a tutte le app e ai dati con funzionalità di integrazione per tutti.
I broker di messaggi sono una tecnologia di comunicazione tra applicazioni che supporta architetture cloud native, basate su microservizi, serverless e ibride.
iPaaS è una soluzione basata su cloud che standardizza e semplifica l'integrazione in ambienti on-premise e cloud.
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.
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.
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.
Utilizzare i dati in tempo reale è essenziale per il successo aziendale.
Tutti i link sono esterni a ibm.com
1 Middleware as a Service (MWAAS) Market Analysis North America, Europe, APAC, South America, Middle East and Africa – US, China, Japan, UK, Germany – Size and Forecast 2024-2028, Technavio, gennaio 2024