• Non ci sono risultati.

L’architettura del programma I3 definita dall’ARPA deriva la sua forma dal tentativo di far fronte a problemi complessi come quelli citati nei paragrafi precedenti e che vengono qui, brevemente, riproposti in un elenco (per comprendere, infatti, questa particolare architettura `e necessario comprendere i problemi a fronte dei quali `e sorta).

• Eterogeneit`a delle sorgenti: differenze fra tipi di dati, schemi logici, interfacce

per accedere ai dati...

• L’evoluzione delle sorgenti di dati: si possono aggiungere nuove fonti o

modi-ficare o eliminare quelle vecchie

• Le dimensioni delle fonti: bisogna far fronte all’aumento dei dati in una singola

sorgente (ed all’aumento delle sorgenti) ed all’aumento dei tempi di risposta che ne deriva

• La semantica nascosta: bisogna dedurre regole, dai differenti schemi, per

• La necessit`a di sviluppare sistemi modulari riusabili: questo punto `e

fondamen-tale per ridurre i tempi ed i costi di sviluppo delle varie applicazioni e far fronte ai mutamenti tecnologici che inevitabilmente si susseguono nel tempo

Una volta compresi i problemi fondamentali si pu`o passare all’analisi della ar-chitettura di riferimento per sistemi I3proposta dall’ARPA. L’architettura del progetto

I3si propone di evidenziare (separando in pi`u moduli) i vari servizi che devono essere svolti ai fini dell’integrazione intelligenti delle informazioni. I servizi evidenziati a questo proposito sono cinque:

• Servizi ci coordinamento • Servizi di amministrazione

• Servizi di integrazione e trasformazione semantica • Servizi di wrapping

• Servizi ausiliari

Fra tutti quelli elencati in precedenza, i servizi principali sono quelli di coordi-namento il cui scopo `e, appunto, quello di coordinare le operazioni attuate dai vari servizi sia in fase di progettazione dei vari link di integrazione fra le sorgenti, che in fase di esecuzione (in tempo reale) su specifiche richieste degli utenti. Verranno esaminati ora, in maniera pi`u approfondita, i diversi servizi citati.

2.3.1 I servizi di coordinamento

I servizi di coordinamento svolgono lavori di supporto sia in fase di progettazione di nuove configurazioni che a tempo di esecuzione delle richieste di utenti. Questi servizi sono di alto livello e, oltre ad individuare quali sorgenti possono essere utili per soddisfare una certa richiesta, presentano all’utente finale l’intero sistema, diviso fra i suoi vari moduli, come un blocco unico ed omogeneo. Grazie ai servizi de coor-dinamento, quindi, le divisioni interne di un sistema I3sono trasparenti all’usufruitore. I principali moduli appartenenti a questa sezione sono:

• Broker: il suo compito `e quello di reperire gli strumenti in grado di trattare le

• Facilitator: il compito del facilitator `e molto simile a quello del broker, ma si

occupa di gestire richieste pi`u complesse contattando anche pi`u di un modu-lo per volta. A partire da un’unica richiesta ne vengono generate diverse da inviare ai moduli che gestiscono sorgenti distinte. Tramite servizi di Query De-composition e tecniche di inferenza (ottenute tramite l’utilizzo dell’intelligenza artificiale) si decompone una query originale in un insieme di sottoquery e si trovano dinamicamente le sorgenti da interrogare. Per tali propositi il facilitator collabora strettamente con i servizi Ausiliari, con quelli di Amministrazione e quelli di Integrazione e trasformazione semantica.

• Matchmaker: serve per definire staticamente configurazioni dedicate ad alcuni

servizi. I moduli e gli strumenti in grado di soddisfare determinate richieste sono determinati una volta per tutte e non vengono calcolati dinamicamente (a differenza di quanto fanno i moduli precedentemente descritti).

2.3.2 I servizi di amministrazione

I servizi di amministrazione sono in stretto contatto con quelli di coordinamento (in pratica vengono chiamati dai servizi di coordinamento). I loro scopo `e quello di fornire informazioni sulle sorgenti permettendo di reperire quelle utili per soddis-fare una certa richiesta. Altro scopo a cui sono dediti `e quello, insieme ai servizi di coordinamento, della creazione di template (un template `e uno schema di comporta-mento: costituisce la codifica di una configurazione specificando le sorgenti usate, gli strumenti e lo specifico ordine di interazione). I moduli principali connessi a questo tipo di servizi sono:

• Resource Discovery: moduli in grado di riconoscere e ritrovare gli strumenti in

grado di rispondere positivamente ad una data domanda a run time. Il loro com-pito `e quello di acquisire informazioni sugli strumenti che si possono utilizzare e sul loro stato attuale. Inoltre acquisiscono e mantengono nozioni sui domini informativi.

• Browser: modulo per mostrare agli utenti gli schemi delle sorgenti iniziali da

sfruttare per l’integrazione e lo schema integrato a partire da essi. Indispens-abile a questi propositi `e l’interazione con i servizi di Wrapping atti ad estrarre informazioni dalle fonti.

• Iterative Query Formulation: si tratta di un modulo di ausilio nella espressione

di una query che ha come oggetto lo schema integrato (non uno schema ritraente una fonte originaria). In particolare `e di aiuto se si ha gi`a espresso una query che non ha prodotto risultati interessanti (suggerisce quali possono essere le condizioni da rilasciare o come la query pu`o essere resa pi`u specifica).

• Primitive di costruzione delle configurazioni: servono a scegliere quali servizi

e quali strumenti possono essere utilizzati per la costruzione di una configu-razione e come collegarli fra loro

2.3.3 I servizi di integrazione e trasformazione semantica

Lo scopo di questi servizi `e la manipolazione semantica necessaria al processo di integrazione. I servizi di integrazione e manipolazione sempantica sono strettamente connessi a quelli di wrapping: infatti le informazioni estratte dai wrappers e le viste sulle singole sorgenti fornite da essi sono proprio l’input per i servizi di integrazione. L’output che viene fornito, invece, `e una vista integrata usando i significati semantici estratti delle fonti. Alcuni servizi di integrazione e trasformazione semantica sono:

• Servizi di Integrazione degli Schemi: questi servizi servono per integrare gli

schemi provenienti da pi`u fonti in un unico schema globale rappresentante l’in-tegrazione delle precedenti viste. Il mappaggio fra lo schema globale e quelli locali (appartenenti alle fonti originali) deve essere mantenuto. Per ottenere questo risultato ci deve essere una trasformazione ed una integrazione dei vari vocabolari e delle varie ontologie usate dalle fonti; in pratica si deve giungere ad una ontologia unica che combini gli aspetti comuni delle singole ontologie. Questo tipo di servizi sono uno dei nodi fondamentali fra quelli offerti da un sistema di mediazione.

• Servizi di Integrazione delle Informazioni: sono servizi che provvedono alla

traduzione dei termini da una ontologia di partenza ad una di arrivo. Forniscono inoltre servizi per uniformare eventuali discrepanze nelle unit`a di misura o nelle date.

• Servizi di supporto al processo di integrazione: sono i servizi che servono per

la scomposizione di una query di partenza su di uno schema integrato in diverse query da eseguire su quelli locali; inoltre sono essenziali per l’aggregazione dei

risultati ottenuti dalle query singole. Fra questi servizi sono annoverati anche quelli tipicamente di aiuto alle prestazione del software, come l’indexing, il caching e l’ordinamento di certe informazioni.

2.3.4 I servizi di wrapping

Il primo passo compiuto nel processo di integrazione di informazioni provenienti da fonti eterogenee `e, per i sistemi descritti nell’ottica I3, quello fatto dai wrappers. Un wrapper `e uno strumento che serve ad estrarre le informazioni volute da una sorgente ed a presentarle uniformate ad uno standard scelto. I wrappers dovrebbere essere il pi`u riusabili possibile (in questo modo sarebbe possibile per pi`u di un modulo medi-atore sfruttare gli stessi wrappers), quindi dovrebbero uniformarsi agli standard con-temporanei di comunicazione pi`u diffusi (come ad esempio CORBA per lo scambio remoto di oggetti). I wrappers rappresentano l’interfaccia fra una sorgente di dati ed il resto del programma, senza questi moduli non `e possibile eseguire il processo di integrazione.

2.3.5 I servizi di ausiliari

I servizi ausiliari aumentano le funzionalit`a dei servizi descritti in precedenza. In prat-ica in questa branca possiamo inserire tutti i servizi di aiuto all’utente ed al processo di integrazione ma che non sono presenti nelle classi precedenti (come ad esempio i vari servizi di ottimizzazione e di monitoraggio del processo aggiuntivi).