Il curioso termine Middleware nasce una decina di anni fa per indicare, in maniera del tutto generale, un’entità (programma, protocollo o altro) che si interpone principalmente tra l’hardware della macchina e il software applicativo. Il termine si è poi evoluto nel tempo assieme agli stessi concetti di applicazione e sistema operativo, assumendo però varie connotazioni e/o interpretazioni a seconda dell’implementazione effettiva di un middleware. Al giorno d’oggi i protocolli e processi middleware sono impiegati maggiormente per la creazione di sistemi distribuiti sulla rete, col compito principale di garantire la trasparenza dell’eterogeneità dei sistemi coinvolti. Alcuni servizi di rete standard sfruttano protocolli applicativi specifici come HTTP, FTP, SMTP ecc. ; protocolli di middleware come CORBA sono invece impiegati per la creazione di applicazioni distrribuite non-standard o comunque più complesse per le quali non è sufficiente la comunicazione attraverso i normali protocolli. Indipendentemente dalla collocazione protocollare nello standard OSI, su può pensare ad un middleware Layer come tutto ciò che si interpone tra il sistema operativo (quindi software di basso livello che controlla direttamente l’hardware) e i software applicativi di alto livello, garantendo principalmente l’indipendenza tra questi due livelli. Un protocollo di Middleware fornisce un ben preciso modello di programmazione per la generazione di applicazioni distribuite, sollevando il programmatore dalla necessità di occuparsi di tutti i dettagli di basso livello della comunicazione e lo scambio di messaggi tra processi distribuiti. Le principali proprietà che il middleware deve fornire sono:
Marshalling e Unmarshalling: i dati prodotti dalle applicazioni devono essere formattati per garantire l’indipendenza hardware-software dell’host di provenienza: il Marshalling (“impastamento”), effettuato in fase di trasmissione, prevede la suddivisione dei dati in più messaggi, la codifica in caratteri universali ASCII, la conversione little-endian big-endian ecc.; l’ Unmarshalling, effettuato in fase di ricezione, opera esattamente al contrario riportando i dati in uno stato comprensibile a quel particolare host.
Invocazioni Remote: i moderni middleware, con la nascita della programmazione a oggetti distribuiti, devono permettere l’invocazione remota di processi e metodi per garantire un’interazione efficiente tra le applicazioni.
Totale trasparenza di utilizzo per l’utente finale: l’utente dell’applicazione programmata col supporto middleware non deve “accorgersi” della presenza dello stesso e quindi non deve occuparsi di coordinarne il funzionamento, in quanto sarà del tutto integrato nel codice dell’applicazione.
Tutto quanto riportato in questa pagina è a puro scopo informativo personale. Se non ti trovi in accordo con quanto riportato nella pagina, vuoi fare delle precisazioni, vuoi fare delle aggiunte o hai delle proposte e dei consigli da dare, puoi farlo mandando un email. Ogni indicazione è fondamentale per la continua crescita del sito.