Vai al contenuto

Middleware

Da Wikipedia, l'enciclopedia libera.

Ilmiddlewareè unsoftwareche si colloca tra leapplicazionie le componenti sottostanti, come ad esempiosistemi operativi,databaseohardware,e/o permette l'interazione di software distribuito. Il suo ruolo primario è quello di astrarre la complessità di diversi livelli di componenti attraverso un'unica interfaccia ben definita.[1]

Il middleware ha iniziato a guadagnare popolarità durante glianni OttantadelXX secolo,come soluzione al problema di connettere le nuove applicazioni ai vecchi sistemi preesistenti (sistemi legacy), sebbene il termine sia stato usato fin dal 1968[2].Il middleware inoltre ha facilitato ilcalcolo distribuito,cioè la connessione di molteplici applicazioni per formare un'applicazione più grande, solitamente in unarete.

Una definizione tecnica, reperibile sul sito dell'Università degli Studi di Roma "La Sapienza"[3],è testualmente:

«(…) unsoftwarediconnessioneche consiste in un insieme di servizi e/o di ambienti di sviluppo di applicazioni distribuite che permettono a più entità (processi, oggetti, ecc.), residenti su uno o più elaboratori, di interagire attraverso una rete di interconnessione a dispetto di differenze nei protocolli di comunicazione, architetture dei sistemi locali, sistemi operativi, ecc.»

ovvero trattasi dicomunicazione tra processi(IPC).

Letteralmente "software di mezzo", il middleware trova applicazione nelle architetture a tre strati, oarchitettura three-tier,cioè:[4]

«Per middleware si intende il software che rende accessibile sul Web risorsehardwareosoftwareche prima erano disponibili solo localmente o su reti nonInternet

Proseguendo nell'analisi del suo utilizzo, il middleware, secondo lo schema dato dall'Università di Roma, risulta composto da:

  • ambiente di sviluppo applicativo (elaborato da unosviluppatore software);
  • servizi diconfigurazioneed amministrazione del sistema;
  • servizi di astrazione e cooperazione, che possono essere intesi come il cuore del software e che si dividono in 3 applicazioni primarie:
    • directory service;
    • security service;
    • time service;
  • servizi di comunicazione: esso è inserito tra le applicazioni distribuite (suo strato sovrastante) e l'infrastruttura di comunicazione (suo strato sottostante).

Caratteristiche ed utilizzo

[modifica|modifica wikitesto]

Il termine identifica una serie di strumenti comeDBMS,web server,application server,sistemi di gestione dei contenuti ed altri strumenti basati sul concetto di sviluppo e pubblicazione di applicazioni e contenuti, con gli sviluppi attuali che si dirigono versoXML,SOAP,servizi webearchitetture orientate al servizio.Spesso sono utilizzati come supporto persistemi distribuiticomplessi conarchitetture multitier,l'integrazione dei processi e dei servizi, residenti su sistemi con tecnologie e architetture diverse, è un'altra funzione delle applicazioni middleware.

Alcuni middleware contengono ilcodice sorgentecompleto, altri rilasciano una semplice interfacciaAPIper unalibreriabinaria precompilata. Alcuni di questi possono essere licenziati in maniera differente, solitamente per garantirsi un incasso maggiore nella vendita del relativo codice. Un esempio tipico di utilizzo del middleware è il "gestore delletransazioni",ovvero un componente che è interposto tra l'utente e il"gestore del database",o l'applicazione in generale, o il sistemaclient/server;in queste situazioni, il middleware accelera il completamento delle richieste dell'utilizzatore, raggruppandole, riducendo il numero delle richieste di collegamento aldatabase,e rendendo ogni collegamento il piùefficientepossibile. Esempi di questo tipo di programmi sonoCICS,IBMWebSphereMQ,Tibco,Tivoli, TradeXpress di Generix Group,TuxedoeApache Tomcat.

L'utilizzo di uno strato software aggiuntivo, il middleware appunto, può consentire un più elevato livello di servizio per gli utenti, ed un più elevato livello di astrazione per iprogrammatori.Può inoltre facilitare la manutenzione, la stesura e l'integrazione diapplicazioni.Tale ruolo è, per certi versi, un'evoluzione del ruolo del middleware, che in partenza era limitato a ricercare l'efficienza nel sistema.

Lo sviluppo delle tecnologieinternetha portato molti degli originali produttori a rivedere la loro offerta per migliorare l'integrazione con il nuovo strumento, ma ha portato anche alla nascita di nuovi attori nel mercato come Mercator, Vitria, e Webmethods. Alcuni consorzi come la"Apache Software Foundation"e la"ObjectWeb consortium"hanno tra i loro compiti, il facilitare lo sviluppo di piattaforme middlewareopen source.

Alcune aziende si sono specializzate nello sviluppo di "middleware",software in grado di mettere in comunicazione i differenti strati architetturali e facilitare il compito di chi ha il ruolo di progettare i singoli componenti (ad esempio una pagina web). Alcuni di questi middleware funzionano come dei veri e propri BUS, offrendo funzionalità di intermediazione e orchestrazione in maniera semplificata (ad es. tramitedrag & dropdei componenti).

Un altro impiego è quello di interporsi, come componente di aggregazione e comunicazione, tra sistemi informatici (HW e/o SW specie sistemi operativi) operanti con tecnologie (piattaforme o architetture) diverse (es. sistemi Microsoft, Apple, IBM e Linux che devono interagire tra loro oppure essere consolidati).

Tra i prodotti presenti sul mercato possiamo citare Oracle Service Bus (OSB) diOracle Corporation,Tibco Enteprise Service Bus della Tibco Software e Mule Enterprise Service Bus di MuleSoft, che in base a Gartner Magic Quadrant rappresentano i principali player. AncheIBMha in catalogo diversi prodotti middleware[5]tra cuiWebSphereè uno dei più utilizzati.

  1. ^(EN)ACM/IFIP/USENIX International Middleware Conference,sumiddleware-conf.github.io.URL consultato il 16 dicembre 2023.
    «Middleware is a distributed-system software that resides between applications and underlying platforms (operating systems; databases; hardware), and/or ties together distributed applications, databases or devices. Its primary role is to coordinate and enable communication between different layers or components while isolating much of the complexity of distribution into a single, well tested and well understood system abstraction.»
  2. ^Nick Gall,Origin of the termmiddleware,suironick.typepad,30 luglio 2005.
  3. ^Roberto Baldoni,Microsoft PowerPoint - SOII-middleware.ppt(PDF), sudis.uniroma1.it(archiviato dall'url originalel'11 maggio 2006).
  4. ^Giuseppe Zito,Lezione 8 - Creazione di middleware in Java per l'accesso a database,suinfn.it,Istituto Nazionale di Fisica Nucleare- Sezione di Bari(archiviato dall'url originaleil 10 ottobre 2007).
  5. ^Cos'è il middleware? | IBM,suibm.URL consultato il 16 dicembre 2023.

Collegamenti esterni

[modifica|modifica wikitesto]
Controllo di autoritàGND(DE)4426067-2