Middleware
Middleware o logica per lo scambio di informazioni tra applicazioni ( interlogico ), o Intermediate Agent , si riferisce a un sistema software che offre servizi e funzioni comuni per le applicazioni. In generale, il middleware gestisce le attività di gestione dei dati, servizi applicativi, messaggistica, autenticazione e gestione delle API. È un software che aiuta un'applicazione a interagire o comunicare con altre applicazioni o pacchetti software, reti, hardwareo sistemi operativi. Ciò semplifica il lavoro dei programmatori nel complesso compito di generare le connessioni e le sincronizzazioni necessarie nei sistemi distribuiti. In questo modo viene fornita una soluzione che migliora la qualità del servizio, nonché la sicurezza, l'invio di messaggi, l'aggiornamento della directory del servizio, ecc. [ 1 ]
Funziona come un livello di astrazione del software distribuito, posizionato tra i livelli dell'applicazione e i livelli inferiori ( sistema operativo e rete ). Il middleware astrae dalla complessità e dall'eterogeneità delle reti di comunicazione, dei sistemi operativi e dei linguaggi di programmazione sottostanti, fornendo un'API per una facile programmazione e gestione delle applicazioni distribuite. A seconda del problema da risolvere e delle funzioni richieste, saranno utili diversi tipi di servizi middleware. In generale, il middleware lato client è implementato dal Sistema Operativo, che dispone delle librerie che eseguono tutte le funzionalità per la comunicazione attraverso la rete.
È responsabile delle attività di gestione dei dati, dei servizi applicativi, della messaggistica di autoindicazione e della gestione delle app. Semplifica inoltre l'accesso a una rete e aumenta la velocità di esecuzione del sistema.
È definito in due categorie note come integrazione e applicazione. Ogni middleware ha determinati protocolli e paradigmi.
È basato e orientato a procedure di interazione dei dati in modo che venga eseguita la sincronizzazione di un processo specifico.
Il middleware spazia dai server Web ai sistemi di autenticazione e agli strumenti di messaggistica:
- Automazione aziendale intelligente - Streaming di dati - Integrazione completa - Automazione aziendale intelligente - Streaming di dati - Integrazione completa
Definizione
Il middleware è tutto il software che si trova tra il sistema operativo e le applicazioni in esecuzione su di esso . Funziona come un livello di traduzione che consente la comunicazione e la gestione dei dati nelle applicazioni distribuite. Il middleware cerca di fornire ai sistemi distribuiti la proprietà della trasparenza, ovvero di mascherare la natura eterogenea del sistema. Ciò si ottiene fornendo le seguenti caratteristiche:
- Offri la possibilità di richiedere e ricevere dati in modo trasparente.
- Liberare progettisti e amministratori di sistema da problemi di implementazione derivanti dalla complessità del sistema operativo.
In pratica, il middleware è rappresentato da processi o oggetti all'interno di un insieme di computer che interagiscono tra loro per implementare la comunicazione e la condivisione delle risorse per le applicazioni distribuite.
Storia
L'origine della parola middleware risale all'anno 1960, quando la parola fu usata durante la "Conferenza di ingegneria del software della NATO del 1960", [ 2 ] essendo un'idea di come collegare il nuovo software con i sistemi più vecchi. Nei decenni precedenti agli anni '90, era descritto solo come software di gestione della connessione di rete, ma quando le tecnologie di rete hanno raggiunto una penetrazione e visibilità sufficienti, il software middleware si è evoluto in un insieme di paradigmi e servizi. In questo modo veniva offerto un modo più semplice, più robusto e controllabile per creare applicazioni distribuite. [ 3 ]
Tassonomia dei programmi middleware
La tassonomia o classificazione del software middleware può essere descritta in due categorie principali: una per l'integrazione e l'altra per l'applicazione. Questi a loro volta hanno classi diverse.
Categoria di integrazione
È il tipo di integrazione che ha la capacità di unirsi a sistemi eterogenei. Ogni middleware ha protocolli di comunicazione o modalità di funzionamento differenti in software differenti . I tipi di integrazione possono essere visualizzati come:
Orientato alla procedura o al processo
Il middleware orientato al processo utilizza la comunicazione sincronizzata (come il telefono). Una delle caratteristiche di questi è che usano lo stub del client e lo scheletro del server . Lo stub client converte la richiesta in un messaggio che viene inviato al server; quindi lo scheletro del server riceve il messaggio, lo converte nella richiesta e chiama l'applicazione server in cui viene elaborato. Dopo l'elaborazione, si verifica il processo inverso. Lo stub client verifica la presenza di errori, invia i risultati al software che ha avviato la richiesta e quindi sospende l'elaborazione. I vantaggi di questi middleware sono che utilizzano un tipo standard nei nomi dei servizi e dei processi remoti, possono restituire risposte anche con problemi di rete e possono gestire più tipi di formati di dati e livelli eterogenei di sistemi di servizio. Gli svantaggi sono che non hanno scalabilità, non possono restituire le informazioni a un programma diverso da quello che ha fatto la richiesta (riflessione) e hanno processi molto rigidi.
Orientato agli oggetti
Supportano l'ordinamento degli oggetti distribuito. La comunicazione tra gli oggetti può essere sincronizzata, sincronizzata differita o non sincronizzata. Supportano più ordini simili effettuati da più clienti in un'unica transazione. Il modo di operare è:
- L'oggetto client chiama un metodo logico per ottenere un oggetto remoto.
- Un ORB proxy (noto anche come stub ) effettua il marshalling delle informazioni ( marshalling o serializzazione) e le trasmette tramite l'agente ( broker ).
- L'agente funge da punto intermedio e contatta varie fonti di informazioni, ottiene i loro ID referrer, raccoglie informazioni e talvolta le riorganizza.
- Il proxy remoto (noto anche come scheletro ) effettua il marshalling ( deseleziona o deserializza) le informazioni che provengono dall'agente e le passa all'oggetto server.
- L'oggetto server elabora le informazioni e genera un risultato che viene restituito al client seguendo i passaggi inversi.
I vantaggi sono che consentono la riflessione e la scalabilità, che opera con più tipi di informazioni e stati e che supporta più processi. Gli svantaggi sono l'esistenza di collegamenti prima dell'esecuzione e il codice wrapper per alcuni sistemi legacy.
Middleware orientato ai messaggi (MOM )
Possono essere divisi in due tipi, attendere e pubblicare/abbonarsi. La fase di attesa può essere suddivisa in messaggio e attesa. Il passaggio del messaggio inizia con l'invio da parte dell'applicazione di un messaggio a uno o più client, con la MOM del client. Il server MOM raccoglie le richieste dalla coda ( Message Broker ) in un ordine predeterminato o in un sistema di attesa. Il server MOM si comporta come un router e di solito non interagisce con loro. Il MOM di pubblicazione e iscrizione agisce in modo leggermente diverso, è più guidato dagli eventi. Se un cliente vuole partecipare per la prima volta, si unisce al bus informativo. A seconda del suo ruolo, che si tratti di editore, abbonato o entrambi, registra un evento. L'editore invia un avviso di un evento al bus di memoria. Il server MOM invia un annuncio all'abbonato registrato quando le informazioni sono disponibili.
Orientato ai componenti
Un componente è un "programma che esegue una funzione specifica, progettato per funzionare e interagire facilmente con altri componenti e applicazioni". Il middleware in questo caso in una configurazione di componenti. I punti di forza di questo middleware sono che è configurabile e riconfigurabile. La riconfigurazione può essere eseguita in fase di esecuzione, offrendo una grande flessibilità per soddisfare le esigenze di un gran numero di applicazioni.
Agenti
Gli agenti sono un tipo di middleware che ha diversi componenti:
- Entità. Possono essere oggetti o processi.
- Media. Possono essere canali, tubi, ecc.
- Le leggi. Identificano la natura interattiva degli agenti. Possono essere temporizzazione o tipo di schema.
I vantaggi degli agenti middleware sono la loro capacità di eseguire un gran numero di attività per conto dell'utente e di coprire un'ampia gamma di strategie basate sull'ambiente circostante. Tuttavia, la sua attuazione è complicata a causa della complessità e delle difficoltà date dalle operazioni che gestiscono.
Categoria dell'applicazione
La classificazione per applicazione include il middleware ottimizzato per applicazioni specifiche.
Middleware di accesso ai dati ( DAM )
Il middleware di accesso alle informazioni ha la caratteristica di poter interagire con diverse fonti di dati. Questo tipo di middleware include quelli che elaborano transazioni, gateway di database e sistemi di transazione/procedura distribuiti.
I loro vantaggi risiedono nella comunicazione che hanno tra più origini dati, nella conversione del linguaggio di programmazione dell'applicazione in un linguaggio accettato dall'origine dati di destinazione e nella capacità di rispondere in un formato e in un linguaggio accettabili per il richiedente.
Middleware desktop
Il middleware desktop può apportare variazioni nella presentazione delle informazioni richieste dall'utente tramite applicazioni di tracciamento e assistenza, controllare eventuali servizi di trasporto e fornire backup e altre operazioni in background. Altri possono essere manutenzione e grafica, ordini, directory di servizio, gestione delle informazioni del database, gestione dei processi, pianificazione dei lavori, notifica degli eventi di servizio, gestione dell'installazione del software, servizi di crittografia e controllo degli accessi.
Middleware basato sul Web
Questo tipo di middleware assiste l'utente nella navigazione sul Web, nell'uso di interfacce che consentono loro di trovare le pagine di interesse e nel rilevare le modifiche nell'interesse dell'utente in base alla cronologia delle ricerche. Fornisce un servizio di identificazione per un gran numero di applicazioni e di comunicazione tra processi indipendentemente dal sistema operativo, dal protocollo di rete e dalla piattaforma hardware . Il middleware strettamente collegato alla rete è chiamato server delle applicazioni, in quanto migliora le prestazioni, la disponibilità, la scalabilità, la sicurezza, il recupero delle informazioni e supporta la gestione e l'utilizzo collaborativi. Il middleware può contattare direttamente l'applicazione ottenendo una migliore comunicazione tra server e client. Altri importanti servizi forniti da questo tipo di middleware sono servizi di directory, e-mail , grandi catene di approvvigionamento, accesso remoto alle informazioni, download di file, accesso a programmi e accesso ad applicazioni remote.
Middleware in tempo reale
Le informazioni in tempo reale sono caratterizzate dal fatto che le informazioni corrette in un momento potrebbero non essere corrette in un altro. Il middleware in tempo reale supporta le richieste time-sensitive e le policy di pianificazione. Questo viene fatto con servizi che migliorano l'efficienza delle applicazioni utente. Il middleware in tempo reale può essere suddiviso in diverse applicazioni:
- Applicazione di database in tempo reale.
- sensore di elaborazione.
- Trasmissione di informazioni.
Le informazioni che passano attraverso il middleware in tempo reale sono aumentate notevolmente con l'introduzione di Internet, delle reti wireless e delle nuove applicazioni basate sulla trasmissione.
I vantaggi di questo tipo di middleware sono che forniscono un processo decisionale che determina i criteri migliori per risolvere i processi sensibili al tempo e la possibilità di aiutare i sistemi operativi a localizzare le risorse quando hanno limiti di tempo di funzionamento.
Il middleware multimediale è un ramo importante del middleware in tempo reale. Questi possono gestire un'ampia varietà di informazioni. Questi tipi possono essere testo, immagini di ogni tipo (GPS, immagini, ecc.), processori di linguaggio naturale, musica e video. Le informazioni devono essere raccolte, integrate e quindi inviate all'utente sensibile al tempo. I dispositivi multimediali possono includere un mix di dispositivi fisici (altoparlanti, fotocamere, microfono) e logici.
Specialisti del middleware
In molti casi il middleware fornisce un'attività molto specifica che non può rientrare nelle categorie precedenti. Un esempio potrebbe essere il middleware medico .
Categoria di livello
La suddivisione in livelli è differenziata in due tipi: middleware di basso livello e middleware di alto livello.
Middleware di basso livello
Middleware che offre funzionalità essenziali, generalmente legate alle modifiche al supporto base TCP/UDP + IP.
Le sue caratteristiche principali sono:
- Serializzazione (in inglese, marshalling ): la serializzazione è il processo di trasformazione di un oggetto, situato su un supporto di memorizzazione, in un formato di dati adatto per l'archiviazione o la trasmissione.
- Multicast su IP: IP Multicast è un metodo per trasmettere datagrammi IP a un gruppo di ricevitori interessati.
- Rete overlay: una rete overlay è una rete virtuale di nodi collegati logicamente costruita su una o più reti sottostanti.
Middleware di alto livello
Questo livello è dedicato alla comunicazione e all'evocazione remota. È un middleware focalizzato sull'invio e la ricezione di dati, ovvero su come i processi comunicano in un sistema distribuito.
Si distinguono tre tipi:
- Remote Procedure Call ( RPC): Remote Procedure Call è un programma che utilizza un computer per eseguire codice su un'altra macchina remota senza doversi preoccupare della comunicazione tra le due macchine.
- Remote Method Invocation (RMI): Java Remote Method Invocation è un meccanismo offerto da Java per richiamare un metodo in remoto. È un'estensione di RPC per il trasferimento diretto di oggetti distribuiti.
- Protocolli di richiesta-risposta : il protocollo di richiesta-risposta include una serie di protocolli che forniscono un supporto di livello relativamente basso per richiedere l'esecuzione di un'operazione remota. Essi gettano le basi per Remote Procedure Call (RPC) e Remote Method Invocation (RMI).
Applicazioni
I servizi middleware forniscono un insieme più funzionale di API per consentire a un'applicazione di:
- Individua chiaramente sulla rete, fornendo così un'interazione con un altro servizio o applicazione
- Dati filtrati per essere utilizzabili in un ambiente pubblico attraverso un processo di anonimizzazione per la protezione della privacy (ad esempio)
- Sii indipendente dal servizio di rete
- Sii affidabile e sempre disponibile
- Aggiungi attributi complementari come la semantica rispetto al sistema operativo e ai servizi di rete.
Il middleware offre alcuni vantaggi tecnologici unici per le aziende e l'industria. Ad esempio, i tradizionali sistemi di database sono spesso distribuiti in ambienti chiusi, in cui gli utenti accedono al sistema solo tramite una rete o una intranet ristretta (ad esempio, la rete interna di un'azienda). Con la crescita del World Wide Web , gli utenti possono accedere praticamente a qualsiasi database per il quale dispongono dei diritti di accesso appropriati da qualsiasi parte del mondo. Il middleware affronta il problema dei diversi livelli di interoperabilità tra diverse strutture di database. Il middleware facilita l'accesso al sistema di gestione dei database legacy (DBMS) o alle applicazioni tramite un server Web, indipendentemente dalle funzionalità specifiche del database. [ 4 ]
Le aziende utilizzano spesso applicazioni middleware per collegare le informazioni dai database dipartimentali, come buste paga, vendite e contabilità, o database ospitati in più posizioni geografiche. [ 5 ] Nel mercato sanitario altamente competitivo, i laboratori fanno ampio uso di applicazioni middleware per il data mining e il Laboratory Information System (LIS) e per combinare i sistemi informativi durante le fusioni ospedaliere. Il middleware aiuta a colmare il divario tra LIS separati in una rete sanitaria di nuova costituzione in seguito all'acquisto di un ospedale. [ 6 ]
Gli sviluppatori di reti wireless possono utilizzare il middleware per affrontare le sfide associate alla rete di sensori wireless (WSN) o alle tecnologie WSN. La distribuzione di un'applicazione middleware consente agli sviluppatori WSN . Integrare i sistemi operativi e l'hardware con l'ampia varietà di diverse applicazioni oggi disponibili. [ 7 ]
Il middleware può aiutare gli sviluppatori di software a non dover scrivere API per tutti i programmi di controllo, il che funge da interfaccia di programmazione separata per le loro applicazioni. Per l' Internet del Futuro , il funzionamento della rete attraverso il monitoraggio del traffico in scenari multidominio , utilizzando strumenti di mediazione ( middleware ) è un potente aiuto, poiché consentono ad operatori , ricercatori e fornitori di servizi di monitorare la Qualità del Servizio e analizzarne eventuali guasti nei servizi di telecomunicazioni. [ 8 ]
Infine, l'e-commerce utilizza il middleware per gestire transazioni rapide e sicure in molti diversi tipi di ambienti informatici. [ 9 ] In breve, il middleware è diventato un elemento critico in un'ampia gamma di settori, grazie alla sua capacità di riunire risorse su reti o piattaforme informatiche diverse.
Nel 2004 i membri della European Broadcasting Union (EBU) hanno condotto uno studio sul middleware rispetto all'integrazione dei sistemi negli ambienti broadcast. Ha coinvolto esperti di ingegneria della progettazione di sistemi di 10 importanti reti europee, che hanno lavorato per un periodo di 12 mesi per comprendere l'effetto dei prodotti, principalmente software, basati su tecniche di produzione multimediale e trasmissione di progettazione di sistemi multimediali. I report 3300S Technology e 3300 Tech risultanti sono stati pubblicati e sono disponibili gratuitamente sul sito Web EBU. [ 10 ] [ 11 ]
Vedi anche
- Middleware RFID
- SAPONE
- CORBA
- Middleware orientato ai messaggi
Esistono molte specifiche e implementazioni del middleware commerciale :
- JBOSS
- Middleware RFID Data Suite
- smoking
- Tibco
- webMetodi
- IBM WebSphere MQ (precedentemente MQSeries )
- JMS
- CICS
- Borland Visi Broker
- SAP PI Integrazione del processo SAP
Riferimenti
- ^ Karne, vescovo. "Un'indagine sul middleware " .
- ^ Gall, Nick (29 luglio 2005). "Origine del termine middleware " .
- ^ D., Bakken (29 luglio 2005). Middleware .
- ^ Peng, C, Chen, S, Chung, J, Roy-Chowdhury, A e Srinivasan, V. (1998). Accesso ai dati aziendali esistenti dal World Wide Web. Giornale dei sistemi IBM, 37(1), 115-132. Estratto il 7 marzo 2009 dal database ABI/INFORM Global. (ID documento: 26217517)
- ^ Bougettaya, A, Malik, Z, Rezgui, A e Korff, L. (2006). Un middleware scalabile per i database Web. Journal of Database Management, 17(4), 20-39, 41-46. Estratto il 7 marzo 2009 dal database ABI/INFORM Global. (ID documento: 1155773301)
- ^ Bagwell, H. (2008). Middleware: fornire valore oltre l'autoverifica Archiviato il 12 ottobre 2009 in Wayback Machine .. IVDT. Estratto il 3 marzo 2009.
- ^ Hadim, S. e Mohamed, N. (2006). Sfide e approcci del middleware per le reti di sensori wireless. IEEE Distributed Systems Online vol 7. Edizione 3. Estratto il 4 marzo 2009 da iEEE Distributed Systems Online Archiviato il 28-09-2011 in Wayback Machine .
- ^ Kai Oswald Seidler. «MOMENTO» . Fp7-moment.eu. Archiviato dall'originale il 28 febbraio 2009 . Estratto il 19 agosto 2010 .
- ^ Carlo, J. (1999). Il middleware passa in primo piano (abbonamento richiesto) . Notizie di tecnologia. Estratto il 2 marzo 2009.
- ^ "Rapporto sul middleware EBU Tech 3300" (PDF) . Estratto il 19 agosto 2010 .
- ^ "Il middleware EBU riporta i Tech 3300" (PDF) . Estratto il 19 agosto 2010 .
Collegamenti esterni
- middleware.objectweb.org .
- Middleware per la gestione dei diritti digitali .
- mig-idl.sourceforge.net Generatore di interfacce middleware per C++ con XML-RPC .
- middleware.internet2.edu Iniziativa sul middleware di Internet2 .
- www.opensubsystems.org/core Archiviato il 3 febbraio 2011 in Wayback Machine . Livello di astrazione del middleware .