Vai al paragrafo

Cos'è il middleware?

Copia URL

Per middleware si intende un insieme di software e servizi cloud concepito per fornire servizi e funzionalità di base alle applicazioni e per aiutare i team di sviluppo e quelli operativi a creare e distribuire applicazioni in modo più efficiente. Il middleware agisce come un tessuto connettivo tra applicazioni, dati e utenti.

Fa parte della terminologia dell'ingegneria del software dalla fine degli anni '60 e come categoria può essere applicato a un'ampia gamma di componenti software moderni. Include runtime applicativi, integrazione di applicazioni aziendali e diversi tipi di servizi cloud, tra cui gestione dei dati, servizi alle applicazioni, messaggistica, autenticazione e gestione dell'interfaccia di programmazione delle applicazioni (API).

Oggi il middleware è la tecnologia di base delle moderne architetture cloud native. Può rendere conveniente lo sviluppo, l'esecuzione e la scalabilità di applicazioni alle organizzazioni con ambienti multicloud e containerizzati.

La definizione di middleware include diverse tipologie di software, dai web server ai sistemi di autenticazione agli strumenti di messaggistica. Di seguito sono indicati alcuni degli esempi di utilizzo del middleware più comuni nello sviluppo applicativo moderno.

Middleware New Application Development diagram

Sviluppo di nuove applicazioni

Il middleware supporta i runtime più moderni e utilizzati in svariati esempi di utilizzo, offrendo a sviluppatori e architetti l'agilità necessaria per muoversi tra piattaforme, insiemi di runtime di base, framework e linguaggi di programmazione. Consente inoltre di erogare le funzioni maggiormente utilizzate come web server, accesso single sign on (SSO), messaggistica e caching in memory.

Middleware optimization of existing applications diagram

Ottimizzazione di applicazioni esistenti

Con l'adozione del middleware, gli sviluppatori possono trasformare le applicazioni monolitiche esistenti in applicazioni cloud native, mantenendo i validi strumenti già in uso ma migliorandone prestazioni e portabilità.

Middleware comprehensive integration diagram

Integrazione su più livelli

Gli strumenti di integrazione middleware connettono i principali sistemi aziendali interni ed esterni. Capacità di integrazione quali trasformazione, connettività, componibilità e messaggistica enterprise, abbinate all'autenticazione SSO, aiutano gli sviluppatori a estendere tali capacità su diverse applicazioni.

Middleware app programming interfaces diagram

Interfacce di programmazione delle applicazioni (API)

A molti servizi middleware si accede tramite le API, insiemi di strumenti, definizioni e protocolli che consentono alle applicazioni di comunicare tra loro. Tramite un livello comune, le API permettono di connettere prodotti e servizi completamente diversi.

Middleware data streaming diagram

Flussi di dati

Le API rappresentano una modalità per condividere i dati tra le applicazioni. Un altro approccio è quello del flusso di dati asincrono, che consiste nella replica di un set di dati in un livello intermedio, da cui i dati possono essere condivisi con più applicazioni. Apache Kafka è uno strumento middleware open source molto diffuso per lo streaming dei dati in tempo reale.

Middleware intelligent business automation diagram

Automazione intelligente dell'azienda

Il middleware è in grado di automatizzare il processo decisionale di sviluppatori, architetti, leader IT e dirigenti d'azienda. L'automazione migliora la gestione e l'efficienza complessiva delle risorse.

Dab Pumps logo

DAB Pumps migliora il time to market del 60%

Scopri quali soluzioni Red Hat hanno permesso a DAB Pumps di ottimizzare l'integrazione dei sistemi velocizzando l'erogazione dei servizi e di porre le basi per adottare il cloud computing.

Man mano che le organizzazioni si orientano verso lo sviluppo cloud native, gli sviluppatori di software e gli architetti di sistema hanno dovuto concentrarsi sulla progettazione e sull'architettura iniziale delle loro piattaforme applicative. Ciò richiede la selezione e l'impostazione di framework e funzionalità per lo sviluppo, il deployment e l'esecuzione delle applicazioni, tutte funzioni gestite dal middleware. Grazie a queste funzionalità, un'organizzazione può ottenere maggiori vantaggi dal cloud. Il deployment delle applicazioni viene oggi eseguito su più infrastrutture, dai sistemi on premise ai cloud pubblici, e funziona come previsto.

Le organizzazioni ricorrono al middleware, in gran parte offerto sotto forma di servizi cloud che semplificano l'implementazione e la gestione, per gestire la complessità e mantenere lo sviluppo delle applicazioni rapido ed economico. Il middleware può supportare un funzionamento omogeneo e coerente degli ambienti applicativi anche su piattaforme altamente distribuite. Può anche supportare la sicurezza della catena di distribuzione del software, le strategie DevSecOps e l'automazione, aiutando i team a creare nuove applicazioni migliorate più velocemente, pur gestendo i rischi per la sicurezza.

Le moderne applicazioni enterprise vengono progettate per essere eseguite, sia on premise che nel cloud, in base alle esigenze di scalabilità dell'azienda. Per realizzarle, gli sviluppatori devono utilizzare un ambiente applicativo con capacità di base unificate. Il middleware è il perno su cui ruota la creazione di un ambiente di questo tipo.

Esso consiste nei seguenti quattro livelli di capacità a cui si aggiungono gli strumenti.

Container

È il livello del middleware che gestisce la distribuzione dei cicli di vita dell'applicazione in modo uniforme. Fornisce le capacità DevOps con continuous integration e continuous deployment (CI/CD), gestione dei container e service mesh.

Runtime

È il livello che contiene gli ambienti di esecuzione del codice personalizzato. Il middleware può fornire runtime e framework leggeri per ambienti cloud altamente distribuiti come microservizi, caching in memory per un accesso rapido ai dati e messaggistica, per velocizzare il trasferimento dei dati.

Integrazione

Il middleware di integrazione fornisce i servizi per la connessione delle app personalizzate e di quelle acquistate, oltre alle risorse Software-as-a-Service (SaaS) tramite messaggistica, integrazione e API andando a formare sistemi funzionanti. Può inoltre fornire servizi di database in memory e di caching dei dati, streaming di dati/eventi, e gestione delle API.

Gestione dell'automazione dei processi e delle decisioni

Questo ultimo livello di sviluppo del middleware aggiunge servizi di ottimizzazione, automazione e gestione delle decisioni intelligenti.

Strumenti

Oltre a questi quattro livelli, il middleware offre strumenti per lo sviluppo applicativo, che consentono ai team di creare applicazioni utilizzando modelli e container già configurati, facilitando la condivisione del codice e lo sviluppo congiunto. Questi strumenti supportano lo sviluppo applicativo omogeneo e coerente e consentono un'esperienza di distribuzione on premise e cloud.

Le API stabiliscono un insieme di definizioni e protocolli per l'integrazione del software, consentendo a un'applicazione di interfacciarsi con altri prodotti e servizi.  Le API semplificano il modo in cui gli sviluppatori integrano nuovi componenti applicativi in un'architettura esistente, aiutando così i team a collaborare e rendendo più veloce l'aggiunta di nuove funzioni utili al software.

L'uso di API e microservizi è una parte fondamentale dello sviluppo di applicazioni cloud native. I servizi che facilitano la connettività API sono una sorta di middleware. Gli strumenti di gestione delle API offrono agli sviluppatori la possibilità di condividere, distribuire, controllare e monetizzare le API.

Insieme ad altri strumenti per i servizi applicativi, come il service mesh e lo streaming dei dati, la gestione delle API può rendere possibile l'esecuzione di applicazioni su larga scala in un ambiente cloud ibrido.

Keep reading

Articolo

Cosa si intende per integrazione?

Cos'è l'integrazione? Scopri cos'è, come introdurla e i vantaggi che offre se abbinata all'open source.

Articolo

Come funziona Apache Kafka?

Apache Kafka è una piattaforma per il data streaming distribuita che permette di pubblicare, sottoscrivere, archiviare ed elaborare flussi di record in tempo reale.

Articolo

Cos'è un'API?

API è l'abbreviazione di interfaccia di programmazione delle applicazioni (application programming interface), un insieme di definizioni e protocolli per la creazione e l'integrazione di software applicativi.

Scopri di più sull'integrazione

Prodotti

Set completo di tecnologie per l'integrazione e la messaggistica.

Accelera la distribuzione e lo sviluppo applicativo.

Trasforma il tuo business e soddisfa le richieste di un mercato in costante evoluzione.

Semplifica l'esperienza nel cloud ibrido e riduci i costi operativi e la complessità della distribuzione di applicazioni cloud native.

Scopri come progettare. distribuire ed eseguire le applicazioni in maniera sicura in ambienti cloud ibridi su larga scala.

Risorse

Ebook

Creare un'infrastruttura agile per dare vita a un'azienda adattiva

Formazione

Corso di formazione gratuito

Red Hat Agile Integration Technical Overview