Capita sempre più spesso di dover affrontare le problematiche legate alla condivisione delle informazioni e delle funzionalità tra programmi: gli utenti, per svolgere le proprie attività, utilizzano una varietà di programmi affini, il cui effetto collaterale è il proliferare di informazioni e di funzionaltà scollegate o addirittura ridondanti. Un esempio molto semplice, e certamente tra i più diffusi, è quello della rubrica telefonica che spesso si trova divisa tra contatti pc e contatti telefono.
Senza saperlo, gli utenti si imbattono continuamente in problematiche di integrazione, cioè nella necessità di dover sfruttare l’anagrafica di un programma e la funzionalità di un altro software. Più tecnicamente, l’integrazione è l’unione di software differenti al fine di condividerne funzionalità ed informazioni ed agire come un unico sistema coordinato. Nella realizzazione di integrazioni software, un ruolo molto importante è giocato dalle tecnologie utilizzate per lo sviluppo dei software coinvolti. In generale, il peso di un’integrazione è tanto più elevato quanto più sono divergenti le tecnologie utilizzate. Per esempio, un software progettato per girare su un singolo computer, avrà meno punti di integrazione di un programma client server o, meglio ancora, di un’applicazione web.
Il punto di partenza di un’integrazione software è la condivisione delle informazioni gestite nei moduli da integrare, che ha come presupposto fondamentale quella di garantire la conoscenza (più spesso, nella pratica, la comprensione) dei dati condivisi. Risulta pertanto determinante non solo avere libero accesso alle informazioni, ma anche alla loro definizione per poter evitare lunghe e dispendiose attività conoscitive attraverso lo studio degli effetti che hanno sui dati le funzionalità del software.
Le tecniche utilizzate per la realizzazione pratica di un’integrazione dipendono fortemente dalla capacità dei software di condividere dati e funzionalità.
Il metodo più datato, ma anche il più efficace nel caso di software molto diversi fra di loro, è quello basato sullo scambio di file. Le informazioni vengono definite formalmente in un tracciato dati e salvate in forma testuale in file. L’applicazione ricevente, dopo aver "parsato" (interpretato) secondo le specifiche fornite il contenuto del file, elabora le informazioni secondo necessità. Tale approccio, però, comporta che le nuove informazioni devono essere trasferite e sincronizzate per permettere al sistema ospite di lavorare su dati aggiornati.
Un’altra tecnica è quella che prevede la condivisione delle informazioni nella stessa base di dati. In tal caso la condivisione di dati sempre aggiornati è una caratteristica implicita del meccanismo e l’unico vincolo da rispettare è quello di non avere limiti di accesso al database utilizzato.
In taluni casi, come quelli dei sistemi distribuiti, la funzionalità ed i dati vengono resi disponibili sotto forma di “Web Service” (Servizio Web). Tale tecnoplogia è nata con il preciso scopo di permettere ai software di esportare le proprie funzionalità secondo uno standard riconosciuto (WSDL). In tal modo tutti software accreditati all’utilizzo, potranno effettuare le proprie richieste senza dover interpretare i dati secondo standard proprietari o accedere direttamente ad un pc. La tecnologia dei web services consente, inoltre, di esportare solo la funzionalità specifica offrendo un livello di information hiding elevato ed un’alta scalabilità di base. Va precisato, però, che questa modalità di integrazione è una delle più giovani e pertanto ne possono beneficare linguaggi e framework di sviluppo più recenti o attualmente supportati negli aggiornamenti.
Autore
Vincenzo Tirelli
Innovation Manager – Senior Software Designer
Ho iniziato a collaborare con la SNAP a partire dal 2007, in qualità di ...