Cos’è middleware?

Middleware è un software che molte applicazioni utilizzano per comunicare tra loro. Esso fornisce funzionalità per connettere le applicazioni in modo intelligente ed efficiente per innovare più velocemente. Middleware funge da ponte tra diverse tecnologie, strumenti e database in modo da poterli integrare perfettamente in un unico sistema. Il sistema unico fornisce quindi un servizio unificato ai propri utenti. Ad esempio, un'applicazione front-end di Windows invia e riceve dati da un server back-end Linux, ma gli utenti dell'applicazione non sono consapevoli della differenza.

Perché Middleware è importante?

Middleware era inizialmente un ponte tra le nuove applicazioni e i sistemi di legacy prima di acquisire popolarità negli anni '80. Gli sviluppatori inizialmente lo hanno utilizzato per integrare i nuovi programmi con i sistemi precedenti, senza riscrivere il codice precedente. Middleware è diventato un importante strumento di comunicazione e gestione dati nei sistemi distribuiti.

Gli sviluppatori utilizzano Middleware per supportare lo sviluppo di applicazioni e semplificare i processi di progettazione. Ciò permette loro di concentrarsi sulla logica aziendale e sulle caratteristiche, invece che sulla connettività tra le diverse componenti del software. Senza Middleware, gli sviluppatori dovrebbero costruire un modulo di scambio dati per ogni componente software che si connette alle applicazioni. Questo è un impegnativo perché le applicazioni moderne consistono in più microservizi o piccole componenti software che comunicano tra loro. 

Quali sono i casi d’uso di Middleware?

I seguenti sono i casi d’uso più comuni di Middleware:

Sviluppo di videogiochi

Gli sviluppatori di videogiochi utilizzano Middleware come motore di gioco. Affinché un gioco funzioni, il sofware deve comunicare con diversi server di immagini, audio e video insieme ai sistemi di comunicazione. Il motore di gioco facilita questa comunicazione e rende lo sviluppo del gioco più efficiente.

Elettronica

Gli ingegneri elettronici utilizzano middleware per integrare vari tipi di sensori con i propri controller. I livelli di middleware permettono ai sensori di comunicare con il controller attraverso un framework di messaggistica comune. 

Sviluppo software

Gli sviluppatori di software utilizzano middleware per integrare diverse componenti software in altre applicazioni. Middleware offre una Interfaccia del programma dell'applicazione (API) standard per gestire gli input e output dei dati richiesti dalla componente. Il collegamento interno con la componente è nascosto all’utente. Gli sviluppatori utilizzano l'API per richiedere i servizi di cui hanno bisogno dalle componenti software. 

Trasmissione dati

Le applicazioni software utilizzano middleware per inviare e ricevere flussi dei dati in maniera affidabile. I flussi dei dati sono una trasmissione ad alta velocità di dati continui. Sono importanti per lo streaming sicuro di video e audio.

Applicazioni distribuite

Le applicazioni distribuite sono programmi software eseguiti su diversi computer in una rete. Solitamente consistono in applicazioni front-end e back-end. Le applicazioni front-end sono software che si utilizzano su un computer o dispositivo mobile, come un'applicazione di social media. Al contrario, le applicazioni back-end sono programmi software che gestiscono l’elaborazione dati, la logica aziendale e le attività di gestione delle risorse. Middleware comunica tra le applicazioni front-end e back-end, così che l’applicazione distribuita lavori correttamente.

Quale è l’architettura di Middleware?

L’architettura software di middleware consiste in numerose componenti che comunicano per creare una data pipeline. I dati si spostano da un’applicazione in connessione all’altra tramite il middleware. Il middleware elabora i dati per compatibilità. Le componenti comuni del software middleware sono le seguenti:

Console di gestione

La console di gestione fornisce agli sviluppatori di software una panoramica delle attività del sistema del middleware, le regole del software e le configurazioni.

Interfaccia client

L’interfaccia client è la parte esterna del software middleware che comunica con le applicazioni. Gli sviluppatori utilizzano le funzioni fornite dall’interfaccia client per interagire con altre applicazioni, database o altri microservizi.

Interfaccia interna del middleware

L’interfaccia interna del middleware si comporta come il collante del software che mette insieme le varie componenti. Le componenti middleware utilizzano l’interfaccia interna per funzionare in modo coeso con il proprio protocollo. 

Interfaccia della piattaforma

L’interfaccia del middleware assicura che il programma del middleware sia compatibile con varie piattaforme. Contiene componenti software che funzionano con diversi tipi di sistemi operativi. 

Contract manager

Il contract manager definisce le regole per lo scambio dati nel sistema middleware. Assicura inoltre che le applicazioni si attengano alle regole nell’invio di dati con il middleware. Invia un avviso, o un'obiezione, all’applicazione, se essa infrange determinate regole. Ad esempio, il contract manager produrrà un’obiezione se l’applicazione invia un numero nel momento in cui è prevista una parola. 

Session Manager

Il session manager imposta un canale di comunicazione sicuro tra applicazione e middleware. Assicura che la comunicazione fluisca perfettamente e archivia i registri di attività dati per la creazione di report. 

Database manager

Alcuni tipi di middleware includono anche un database manager. Il database manager è responsabile dell’integrazione con diversi tipi di database, come richiesto. 

Monitoraggio del tempo di esecuzione

Il monitoraggio del tempo di esecuzione fornisce un controllo continuo dei movimenti di dati nel middleware. Individua e segnala attività anomale agli sviluppatori. 

Come funziona il middleware?

Il Middleware astrae il processo di comunicazione sottostante tra le componenti. Ciò significa che l’applicazione front-end comunica solo con il middleware e non deve imparare il linguaggio delle altre componenti sofware back-end. 

Framework di messaggistica

Un framework di messaggistica facilita lo scambio di dati tra le applicazioni front-end e back-end. I framework comuni includono:

  • JavaScript Object Notation (JSON)
  • Representational State Transfer (REST API)
  • Extensible Markup Language (XML)
  • Servizi Web
  • Simple Object Access Protocol (SOAP) 

I framework di messaggistica forniscono una comune interfaccia di comunicazione per le applicazioni in diverse piattaforme operative e lingue. Le applicazioni scrivono e leggono dati in un formato standardizzato fornito dal framework di messaggistica. 

Esempi di middleware

Ad esempio, un server web è un middleware che connette i siti web ai database back-end. Quando si invia un modulo a un sito web, il computer manda la richiesta in XML o JSON al server web. Quindi, il server web esegue la logica aziendale sulla base della richiesta, recupera le informazioni dai database o comunica ad altri microservizi utilizzando diversi protocolli.

Altre funzioni del middleware

Oltre a essere intermediari tra le applicazioni software, i programmi middleware fanno anche quanto segue:

  • Forniscono un canale di comunicazione sicuro tra le applicazioni distribuite, così che i siti web inviino informazioni sensibili alle applicazioni back-end in modo sicuro. 
  • Gestiscono il flusso di traffico ed evitano di sovraccaricare una particolare applicazione o server di file.
  • Automatizzano e personalizzano le risposte alla richiesta. Ad esempio, il middleware ordina e filtra i risultati prima di inviarli all’applicazione front-end.

Cos’è la piattaforma middleware?

La piattaforma middleware supporta lo sviluppo di applicazioni fornendo un sistema di strumenti e risorse gestite. Gli sviluppatori utilizzano la piattaforma middleware per condividere o trasferire le risorse tra le applicazioni. Di seguito sono illustrati alcuni esempi di risorse di piattaforma middleware:

Ambienti di runtime

Un ambiente di runtime è come un piccolo sistema operativo che permette di eseguire un programma software. Ad esempio, le applicazioni Java devono essere eseguite nell’ambiente di runtime Java. Gli sviluppatori possono utilizzare AWS Lambda per impostare un ambiente di runtime per qualsiasi linguaggio di programmazione. 

Server web

Un server web è un programma per computer che riceve, elabora e risponde alle richieste dai siti web. Gli sviluppatori web utilizzano Amazon Lightsail per ospitare e gestire i server web per semplici applicazioni. 

Sistemi di gestione dei contenuti

Il sistema di gestione dei contenuti è un software che crea, modifica, archivia e pubblica informazioni digitali. Ad esempio, WordPress è un sistema di gestione di contenuti open source per la costruzione di siti web. 

Container

Un container è un bundle pronto all’implementazione dei codici e delle risorse necessarie dell’applicazione. Gli sviluppatori utlizzano Amazon Elastic Container Service (Amazon ECS) per implementare, gestire e dimensionare applicazioni containerizzate. 

Quali sono le tipologie di middleware?

Gli sviluppatori utilizzano middleware per vari scopi nello sviluppo dei software. A seguire, delle comuni tipologie di middleware:

Middleware per l’integrazione delle applicazioni per aziende

Il middleware per l’integrazione delle applicazioni per aziende connette tutti i sistemi, servizi e origini dati di software all’interno di un’organizzazione. Le applicazioni per aziende utilizzano questo middleware per inviare informazioni l’una all’altra senza cambiare rete o configurazioni di database. 

Middleware orientato ai dati

Il middleware orientato ai dati o ai database facilita il trasferimento di dati tra applicazioni e diversi tipi di database.

Middleware orientato ai messaggi

Il middleware orientato ai messaggi (MOM) può supportare la comunicazione tra le componenti del software in un sistema di calcolo distribuito.

Middleware transazionale

Il middleware transazionale, come i monitor di elaborazione della transazione, assicura che ogni fase in un processo di transazione software sia eseguita correttamente. 

Middleware orientati al contenuto

Le applicazioni utilizzano middleware orientati al contenuto per pubblicare o recuperare contenuti senza costruire il meccanismo di archiviazione sottostante.

Middleware per chiamata di procedura remota

Un programma software utilizza un middleware per chiamata di procedura remota (RPC) per utilizzare il servizio di un altro programma all’interno della stessa rete.

Middleware per dispositivo

Il middleware per dispositivo fornisce le risorse necessarie agli sviluppatori per costruire applicazioni mobili su determinati dispositivi mobili, come framework di connettività e librerie. 

Middleware per richieste di oggetti

Le applicazioni utilizzano un broker di richiesta oggetti o un middleware di richiesta oggetti per inviare richieste senza sapere dove sia ospitata l’applicazione target.

Middleware per server di applicazioni

Gli sviluppatori utilizzano il middleware per server di applicazioni per costruire, implementare, gestire e connettere applicazioni per aziende ai server di applicazioni back-end.

Middleware integrato

Il middleware integrato funge da ponte tra le applicazioni e il sistema operativo nei sistemi integrati. I sistemi integrati sono prodotti elettronici che funzionano con un microcontroller. 

Middleware di gestione API

Gli sviluppatori utilizzano il middleware di gestione API per creare le API e facilitare il loro uso da parte di altri sviluppatori. 

Middleware per flusso asincrono dei dati

Il middleware per il flusso asincrono dei dati supporta il flusso dei dati in tempo reale tra i sistemi distribuiti.

Middleware robitico

Gli ingegneri utilizzano il middleware robotico per integrare diversi tipi di robot indipendentemente dal loro hardware, firmware e produttore. 

Cos’è il middleware nel cloud computing?

Il cloud computing riguarda la costruzione e l'implementazione di applicazioni native per il cloud attraverso diverse infrastrutture. Gli sviluppatori utilizzano il middleware per accedere alle risorse cloud senza essere sovraccaricati dalla complessità di gestione delle infrastrutture. Gli sviluppatori implementano le applicazioni cloud in container in un host scalabile basato sul cloud come Amazon Elastic Compute Cloud (Amazon EC2).

Introduzione ad Amazon EC2

In che modo AWS supporta la tecnologia middleware?

L’integrazione di applicazioni su AWS è una serie di servizi che rappresentano un’alternativa conveniente al middleware convenzionale per cloud computing. Gli sviluppatori utilizzano i servizi per comunicare tra le componenti disaccoppiate all'interno di microservizi, sistemi distribuiti e applicazioni serverless. Ad esempio:

  • AWS Step Functions è un servizio di un flusso di lavoro visivo che permette agli sviluppatori di costruire applicazioni distribuite, automatizzare IT e processi aziendali, costruire dati e pipeline di machine learning con i servizi AWS.
  • Amazon Simple Notification Service (Amazon SNS) è un’alternativa ai middleware orientati ai messaggi. Fornisce servizi di messaggistica per applicazioni.
  • Amazon EventBridge è un bus di eventi serverless che gli sviluppatori utilizzano per integrare le applicazioni cloud con i servizi AWS.  

Inizia oggi stesso a utilizzare middleware su AWS creando un account AWS.

Fasi successive del middleware

Standard Product Icons (Features) Squid Ink
Scopri ulteriori risorse correlate al prodotto
Scopri di più su AWS Support per la tecnologia middleware 
Sign up for a free account
Registrati per creare un account gratuito

Ottieni accesso immediato al Piano gratuito di AWS.

Crea un account gratuito 
Standard Product Icons (Start Building) Squid Ink
Inizia subito a costruire nella console

Inizia subito a costruire con Amazon EC2 nella Console di gestione AWS.

Accedi