La struttura software per la connessione di un reader RFId è riportato nella figura che segue. Gli attori sono:

         applicazione: si tratta del software gestionale, logistico o qualsivoglia applicativo che utilizza i dati raccolti dal reader RFId;
         middleware: si tratta dell’interfaccia tra applicazione e reader fisico;
         reader: ovvero lo strumento di lettura.

Il middleware si occupa di interpretare le richieste provenienti dal software applicativo e di comandare il reader RFId utilizzando il protocollo tipico del lettore e la porta di comunicazione a cui è connesso. Viceversa, i dati letti dal reader vengono solitamente filtrati, eliminando doppie o false letture e, secondo ipotetici canoni, riportati verso l’applicazione. Il middleware può utilizzare uno schema di collegamento diretto al reader, fornendo i comandi appropriati sul layer fisico (direttamente sulla porta di comunicazione) oppure si può appoggiare a librerie del produttore dell’hardware che istanziano un reader virtuale con il quale comunicare tramite chiamate API.
 

 

 

 
La vasta disponibilità di hardware (reader RFId) oggi in commercio vede sempre più utile lo strato di middleware. Al cambiare dell’hardware, passare ad esempio da un reader HF ad uno UHF o da una porta seriale ad una porta ethernet, l’applicazione software non cambia mentre il middleware si può agevolmente adattare alle nuove esigenze.
 
Spesso si discute, vista l’evoluzione crescente della tecnologia, se inglobare il middleware all’interno del reader stesso, programmandone il firmware allo scopo di ottenere le operazioni di filtraggio discusse sopra. La soluzione “embedded” ha il grande vantaggio della compattezza del flusso di informazione ma ha lo svantaggio della flessibilità: sostituire un reader con un modello diverso implica poter programmare anche questo ultimo secondo i canoni descritti sopra: tale operazione non è sempre possibile. Scrivere un middleware per Personal Computer genera un flusso dati più discontinuo ma garantisce la possibilità di manipolare sempre le informazioni, anche al cambiare dell’hardware.