Middleware
Sfondo nero e blu
Middleware

Il middleware accelera lo sviluppo di applicazioni distribuite semplificando la connettività tra applicazioni, componenti applicativi e origini dati back-end.

Prodotti in evidenza

WebSphere Hybrid Edition

Red Hat OpenShift on IBM Cloud

WebSphere Application Server

MQ

IBM API Connect

Event Streams


Cos'è il middleware?

Il middleware è un software che consente uno o più tipi di comunicazione o connettività tra due o più applicazioni o componenti applicativi in una rete distribuita. Semplificando la connessione di applicazioni che non sono state progettate per connettersi tra loro e fornendo funzionalità per connetterle in modo intelligente, il middleware semplifica lo sviluppo delle applicazioni e accelera il time-to-market.

Esistono molti tipi di middleware. Alcuni, come i broker di messaggi o i monitor di elaborazione delle transazioni, si concentrano su un tipo di comunicazione. Altri, come i server di applicazioni Web o il middleware per dispositivi mobili, forniscono l'intera gamma di capacità di comunicazione e connettività necessarie per creare un particolare tipo di applicazione. Altri ancora, come un'offerta integration platform as a service (iPaaS) o un  enterprise service bus (EBS), funzionano come hub di integrazione centralizzato per collegare tutti i componenti di un'azienda. (Esiste persino un middleware che consente agli sviluppatori di creare il proprio middleware personalizzato).

Il middleware è stato così chiamato perché il primo middleware in genere fungeva da mediatore tra un front-end dell'applicazione, o client, e una risorsa di back-end, ad esempio un database, un'applicazione mainframe o un dispositivo hardware specializzato, a cui il client avrebbe potuto richiedere dati. 

Ma il middleware odierno opera ben oltre questo ambito. Il middleware del portale, ad esempio, comprende il front-end dell'applicazione e gli strumenti per la connettività del back-end; il middleware del database in genere include il proprio archivio dati. E come leggerai di seguito, una classe emergente di middleware sfrutta la tecnologia dei contenitori per aiutare gli sviluppatori a connettersi alle risorse distribuite su più cloud.


Come funziona il middleware

Al livello più elementare, il middleware consente agli sviluppatori di creare applicazioni senza dover creare un'integrazione personalizzata ogni volta che devono connettersi a componenti dell'applicazione (servizi o microservizi), origini dati, risorse di elaborazione o dispositivi.

Lo fa fornendo servizi che consentono a diverse  applicazioni e servizi di comunicare utilizzando framework di messaggistica comuni come JSON (JavaScript object notation), REST (representational state transfer), XML (extensible markup language), SOAP (simple object access protocol) o servizi web. In genere, il middleware fornisce anche servizi che abilitano componenti scritti in diversi linguaggi, come ad esempio Java, C++, PHP, and Python - to talk with each other.

Oltre a fornire questa interoperabilità che consente di risparmiare lavoro, il middleware include anche servizi che aiutano gli sviluppatori

  • Configurazione e controllo delle connessioni e delle integrazioni. In base alle informazioni contenute in una richiesta di un'applicazione client o front-end, il middleware può personalizzare la risposta dell'applicazione o del servizio back-end. Nell'applicazione di e-commerce di un rivenditore, la  logica applicativa  del middleware può ordinare i risultati della ricerca del prodotto provenienti da un database di inventario back-end in base alla posizione del negozio più vicino, in base all'indirizzo IP o alle informazioni sulla posizione presenti nell' intestazione  della richiesta HTTP.
  • Protezione delle connessioni e del trasferimento dati.  Il middleware in genere stabilisce una connessione sicura dall'applicazione front-end alle origini dati back-end utilizzando Transport Layer Security (TSL) o un altro protocollo di sicurezza di rete. E può fornire capacità di  autenticazione, sfidando la richiesta di credenziali (nome utente e password) o certificati digitali delle applicazioni front-end. 
  • Gestione dinamica del traffico  su sistemi distribuiti. Quando il traffico delle applicazioni aumenta, il middleware aziendale può ridimensionarsi per distribuire le richieste dei client su più server, on-premise o nel cloud. E le capacità di elaborazione simultanea possono prevenire problemi quando più client tentano di accedere contemporaneamente alla stessa origine dati di back-end.

Tipi di middleware

Esistono molti tipi diversi di middleware. Alcuni di questi si concentrano su specifici tipi di connettività, altri su applicazioni, componenti applicativi e dispositivi specifici; alcuni combinano funzionalità middleware per un'attività di sviluppo specifica. Tra i tipi di software middleware più conosciuti e più comunemente utilizzati vi sono:

  • Il middleware orientato ai messaggi (message-oriented middleware, MOM)  consente ai componenti dell'applicazione che utilizzano protocolli di messaggistica diversi di comunicare per scambiare messaggi. Oltre a tradurre, o trasformare, i messaggi tra le applicazioni, MOM gestisce l'instradamento dei messaggi in modo che arrivino sempre ai componenti corretti nell'ordine corretto. Alcuni esempi di MOM includono code di messaggi e broker di messaggi.
  • Il middleware Remote procedure call (RPC)  consente a un'applicazione di attivare una procedura in un'altra applicazione, in esecuzione sullo stesso computer o su un computer o una rete diversi, come se entrambe facessero parte della stessa applicazione sullo stesso computer.
  • Middleware di dati o database  semplifica l'accesso e l'interazione con i database di back-end. In genere il middleware del database è una forma di server di database SQL.
  • Il middleware API (application programming interface)   fornisce strumenti che gli sviluppatori possono utilizzare per creare, esporre e gestire le API per le loro applicazioni, in modo che altri sviluppatori possano connettersi ad esse. Alcuni  middleware  API includono strumenti per la  monetizzazione  delle API, consentendo ad altre organizzazioni di utilizzarle a pagamento. Esempi di middleware API includono piattaforme di gestione API, gateway API e portali per sviluppatori di API.
  • Il middleware Object request broker (ORB)  funge da intermediario tra una richiesta proveniente da un oggetto o componente dell'applicazione  e l'adempimento di tale richiesta da parte di un altro oggetto o componente sulla rete distribuita. Gli ORB operano con la Common Object Request Broker  Architecture (CORBA), che consente a un componente software di effettuare una richiesta di un altro, senza sapere dove l'altro sia ospitato o che aspetto abbia la sua interfaccia utente: il "brokering" gestisce queste informazioni durante lo scambio.
  • Il middleware transazionale  fornisce servizi per supportare l'esecuzione di transazioni di dati attraverso una rete distribuita. I più noti middleware transazionali  sono  i monitor di elaborazione delle transazioni  (transaction processing monitors, TPM), che assicurano che le transazioni procedano da un passaggio all'altro, eseguendo lo scambio di dati, aggiungendo/modificando/eliminando dati dove necessario, ecc., fino al completamento.
  • Il middleware di streaming di dati asincrono  replica un flusso di dati in un archivio intermedio, consentendo la condivisione dei dati tra più applicazioni. Apache Kafka è uno degli esempi più noti di middleware per lo streaming di dati in tempo reale.
  • Il middleware del dispositivo  fornisce un insieme mirato di funzionalità di integrazione e connettività  per lo sviluppo di app per un sistema operativo per dispositivi mobili specifico.
  • Il middleware del portale  fornisce strumenti e risorse per l'integrazione di contenuti e funzionalità da varie applicazioni correlate "at the glass", o su un singolo schermo, per creare un'unica applicazione composita.
  • Il middleware di robotica  semplifica il processo di integrazione dell'hardware, firmware e software della robotica da più produttori e sedi.

Middleware di integrazione delle applicazioni aziendali


Il middleware di integrazione delle applicazioni aziendali consente a un'organizzazione di stabilire un hub di integrazione aziendale: un modo standardizzato per connettere tutte le applicazioni, i componenti delle applicazioni, i processi aziendali e le origini dati di back-end nell'intera azienda.

Fino a circa dieci anno fa, il principale middleware di integrazione delle applicazioni aziendali era enterprise service bus (ESB), che fungeva da hub d'integrazione in una service-oriented architecture (SOA). Oggi un modello ospitato nel cloud chiamato integration-platform-as-a-service, o iPaaS, consente a un'organizzazione di connettere all'interno del proprio data center applicazioni, dati, processi e servizi in ambienti on-premise, cloud privato e cloud pubblico, senza il lavoro e le spese di acquisto, installazione, gestione e manutenzione del middleware di integrazione (e dell'hardware su cui viene eseguito).

Middleware della piattaforma


Il middleware della piattaforma (o middleware della piattaforma applicativa) può supportare ulteriormente lo sviluppo di applicazioni e accelerare la distribuzione delle applicazioni fornendo un ambiente di hosting runtime, come ad esempio un ambiente Java RE(Java runtime environment), o contenitori o entrambi, per l'applicazione o la logica aziendale. Il middleware della piattaforma può includere o combinare server  di applicazioni aziendali, server Web e sistemi di gestione dei contenuti, nonché gli altri tipi di middleware elencati in precedenza.


Middleware e applicazioni cloud-native

Cloud-native un approccio allo sviluppo delle applicazioni che sfrutta le fondamentali tecnologie di cloud computing, con l'obiettivo di fornire uno sviluppo, un'implementazione e una gestione coerenti in ambienti locali, cloud privati o pubblici. 

In pratica, oggi le applicazioni cloud native sono applicazioni create da microservizi, e distribuite in contenitori gestiti tramite Kubernetes. I microservizi sono componenti applicativi con abbinamenti minimi che comprendono il proprio stack e possono essere distribuiti e aggiornati indipendentemente l'uno dall'altro e comunicano tra loro utilizzando una combinazione di API REST, broker di messaggi e flussi di eventi. I contenitori sono degli eseguibili leggeri che impacchettano il codice dell'applicazione, come i microservizi, abbinati alle sole librerie e dipendenze del sistema operativo necessarie per eseguire tale codice su qualsiasi infrastruttura IT o cloud tradizionale.

Nell'insieme, queste e le tecnologie correlate, creano una potente piattaforma "develop-once-deploy-anywhere" da utilizzare nel cloud per la distribuzione di nuove applicazioni cloud ibride e per la modernizzazione dei sistemi legacy tradizionali. Ma danno luogo anche ad un ambiente di sviluppo complesso che combina ancora più applicazioni software, origini dati, linguaggi di programmazione, strumenti e sistemi distribuiti. 

Il middleware può risolvere parte di questa complessità, ma l'esecuzione di applicazioni containerizzate con il middleware convenzionale può aggiungere complessità proprie, nonché il tipo stesso di sovraccarico dell'infrastruttura che i container sono stati progettati per eliminare. Per questo motivo, popolari piattaforme di sviluppo di applicazioni per il cloud, quali Cloud Foundry (link esterno a IBM) e Red Hat Open Shift, sono evolute per includere il middleware containerizzato, middleware modulare in modo da impacchettare in un contenitore solo le funzioni di connettività richieste.


Middleware e IBM Cloud®

Man mano che le organizzazioni accelerano la loro trasformazione digitale, all'interno della quale il middleware svolge un ruolo chiave, la necessità di automazione si amplia. Un passo verso una maggiore automazione dell'operatività aziendale e dell'IT deve iniziare con piccoli progetti di successo misurabili, che puoi quindi ridimensionare e ottimizzare per altri processi e in altre parti della tua organizzazione.

Collaborando con IBM, avrai accesso alle funzionalità di automazione basate sull'AI, inclusi dei flussi di lavoro predefiniti per contribuire ad accelerare l'innovazione rendendo ogni processo più intelligente.

Fai un passo avanti:

Inizia con un account IBM Cloud oggi stesso.


Soluzioni correlate

Automazione con tecnologia AI

Dai flussi di lavoro di business alle operazioni IT, la nostra automazione con tecnologia AI può aiutarti. Scopri come si stanno trasformando le aziende leader.


WebSphere Application Server

Un ambiente di runtime server Java flessibile e dotato di misure di sicurezza complete per le applicazioni aziendali


IBM API Connect

Gestisci il tuo ecosistema di API su più cloud, promuovendo al contempo gli sforzi di socializzazione e monetizzazione


Event Streams

IBM Event Streams una piattaforma di streaming di eventi, basata su Apache Kafka, aiuta a reagire agli eventi praticamente in tempo reale fornendo ai clienti esperienze più coinvolgenti.


Red Hat OpenShift on IBM Cloud

Red Hat OpenShift on IBM Cloud™ utilizza OpenShift in ambienti pubblici e ibridi per una maggiore velocità, reattività al mercato, scalabilità e affidabilità.