SISTEMA PER LA GESTIONE E CONDIVISIONE DI RISORSE MULTIMEDIALI

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "SISTEMA PER LA GESTIONE E CONDIVISIONE DI RISORSE MULTIMEDIALI"

Transcript

1 UNIVERSITÀ DEGLI STUDI DI TRENTO Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea Triennale in Informatica Tesi di Laurea SISTEMA PER LA GESTIONE E CONDIVISIONE DI RISORSE MULTIMEDIALI Relatore: Prof. Paolo Giorgini Laureando: Loris Delpero Correlatore: Dr. Raffaele de Amicis ANNO ACCADEMICO

2

3 Indice Introduzione iii 1 Sistemi Multi-Agente e Cultura Implicita Il concetto di agente Caratteristiche ambientali Agenti Intelligenti Agenti ed oggetti Sistemi Multi-agente Architetture per agenti Information Overloading e Cultura Implicita Information Retrieval e Information Filtering Cultura Implicita Usi precedenti del SICS Tecnologie e Standard per Sistemi Multi-Agente Specifiche FIPA Jade Sistema per la gestione e condivisione di risorse multimediali ISO Standard MPEG Obbiettivi Concetti chiave dello standard Descrizione dello Standard Elementi dello standard in dettaglio Classification Schema Architettura del sistema Knowledge Engineer Creazione dell informazione Condivisione dell informazione Content Manager Content Storage System Host Server User Client

4 ii Indice 3 Verticalizzazione del Sistema nel Contesto del Design Automobilistico Obbiettivi Implementazione Knowledge Engineer (KE) Authoring Tool KE Client Dettagli implementativi Content Manager Content Storage System Protocollo di Comunicazione Dettagli Implementativi Host Server Java Packages sviluppati Dettagli Implementativi User Client Dettagli Implementativi Esempi di Utilizzo del Sistema e Risultati Sperimentali Authoring e recupero di modelli 3D Produzione contenuti Condivisione dell informazione Fase di recupero - lato server Fase di recupero - lato client Selezione risultati Gestione e modifica dei contenuti Ricerca contenuto Selezione e download Conclusioni e sviluppi futuri 87 A Definizione formale di Cultura Implicita 89 Bibliografia 95

5 Introduzione La crescente disponibilità di dati soprattutto di tipo multimediale associata ad una difficoltà di gestione dovuta ad una strutturazione spesso eterogenea e soggettiva degli stessi, hanno favorito lo sviluppo di strumenti sempre più efficienti per la descrizione, filtraggio e recupero delle informazioni. Il valore che viene ad assumere un informazione è tanto più grande quanto più facile è il suo reperimento, accesso e gestione. Gli attuali motori di ricerca basano la loro esplorazione esclusivamente sulla parte testuale di un documento, tralasciando ogni significato semantico associato alla risorsa multimediale (se non per il nome del file che contiene tale informazione). Viene a mancare, di conseguenza, quello che spesso è identificato come quality access to content, che per essere realizzato necessita di soluzioni innovative nell identificazione dei contenuti, e tecniche accurate e personalizzate di filtraggio, ricerca, reperimento e gestione. Si rende quindi evidente la necessità di implementare forme di rappresentazione dei dati che offrano non solo efficienza in fase di memorizzazione e compressione, ma anche funzionalità avanzate di descrizione dei contenuti. L utilizzo di tecniche per la descrizione semantica dell informazione assume significato solo se accompagnato da un architettura intelligente a supporto dell utente nella fase di creazione, accesso e gestione di tale informazione. La soluzione al problema, proposta in questo lavoro di tesi, è basata su un infrastruttura software che coinvolge l intero ciclo di vita dell informazione, dalla fase di produzione alla sua condivisione e recupero. Il sistema consente in sintesi di facilitare la gestione di risorse eterogenee e complesse in ambienti distribuiti ed è in grado di adattarsi dinamicamente al comportamento assunto dagli utenti. Le tecnologie alla base, rappresentate dal modello d interazione ad agenti e il framework di Cultura Implicita, sono state combinate con lo standard MPEG-7, un interfaccia per la descrizione strutturale e semantica dell informazione, così da ottenere uno strumento estremamente flessibile e facilmente adattabile ad ogni tipo di dato. Particolare attenzione è stata dedicata alla gestione di oggetti tridimensionali complessi per i quali è stato sviluppato un ambiente che permette al designer, in fase di progettazione, di arricchire il proprio lavoro con una descrizione strutturale e semantica che coinvolge non solo il modello stesso ma anche tutti i sotto-oggetti di cui è composto. La procedura è completamente automatizzata e produce una rappresentazione in formato virtuale del modello 3D, che rispecchia la struttura semantica della descrizione MPEG-7 associata. Il vantaggio che ne deriva

6 iv Introduzione si evidenzia nella fase di recupero dell informazione, ovvero nel momento in cui è effettuata una ricerca sul sistema utilizzando come chiave il nome di un sotto-oggetto: se esiste un modello contenente la parte in questione, il sistema estrae in tempo reale a partire dal modello originale la parte richiesta che viene quindi inviata all utente e memorizzata per ricerche successive. L utilizzo di MPEG-7 ha permesso non solo di arricchire i contenuti multimediali con una descrizione semantica, ma anche di definire un vocabolario specifico per la descrizione del particolare dominio in cui il sistema opera. Ciò consente ad una descrizione MPEG-7 di far riferimento ad un insieme di termini definiti in risorse esterne, offrendo così un maggior grado di flessibilità nella gestione dei contenuti. Questa caratteristica aumenta notevolmente la portabilità dell intero sistema che può essere facilmente adattato a domini diversi. Per la fase di recupero dell informazione si è deciso di far riferimento alla tecnologia ad agenti, entità software intelligenti capaci di esibire comportamenti autonomi, agire in ambienti diversi e percepire i cambiamenti che avvengono in esso. Per queste loro caratteristiche sono adatti ad assolvere per conto dell utente compiti quali la ricerca, il prelievo e l organizzazione di informazioni senza necessità di controllo da parte di quest ultimo. Ciascun utente dispone di un proprio agente in grado di conoscere i suoi interessi e collaborare con altri agenti che operano nel sistema allo scopo di risolvere obiettivi personali o di gruppo. Questa capacità è favorita dalla dotazione del sistema del paradigma di Cultura Implicita, che permette a ciascun agente di osservare l ambiente in cui agisce e sulla base di queste osservazioni supportare le proprie scelte e quelle degli altri agenti con opportuni suggerimenti. La condivisione di informazioni all interno del sistema avviene in una ambiente protetto da un processo di autenticazione e registrazione associato all utilizzo di un protocollo di comunicazione sicuro basato su SSL. La presente tesi è strutturata come segue. Il capitolo 1 introduce lo scenario fornendo un breve panoramica sullo stato dell arte per quanto riguarda la tecnologia ad agenti ed il framework di Cultura Implicita. Sono inoltre riportate parte delle specifiche FIPA e dell infrastruttura per agenti Jade che rappresenta uno strumento fondamentale nel lavoro svolto. Il capitolo 2 sintetizza alcune delle caratteristiche chiave dello standard MPEG-7 e fornisce una descrizione dell architettura logica del sistema implementato. Il capitolo 3 spiega come l infrastruttura proposta possa essere facilmente applicata ad un caso di studio reale, in particolare viene presentata una verticalizzazione del sistema nel contesto del design automobilistico. Il capitolo 4 presenta alcuni risultati ed esempi di funzionamento del sistema. Da ultimo vengono presentate le conclusioni e le prospettive di sviluppo futuro.

7 1 Sistemi Multi-Agente e Cultura Implicita Lo studio dei sistemi multi-agente ebbe inizio alla fine degli anni Settanta nell ambito dello studio sull Intelligenza Artificiale Distribuita (DAI), disciplina che si propone di sviluppare meccanismi di comunicazione e interazione tra agenti simili a quelli tra esseri umani [58]. In pochi anni l interesse verso la tecnologia ad agenti è cresciuto rapidamente in quanto da molti considerata piattaforma ideale per applicazioni distribuite e complesse quali Internet. I sistemi multi-agente sono costituiti da un certo numero di entità software distribuite o meno, meglio conosciute in letteratura come agenti. Essi sono contraddistinti da alcune caratteristiche chiave quali l autonomia e l intelligenza in grado di modificare il loro comportamento in funzione degli obiettivi e di percepire l ambiente che li circonda; spesso presentano delle qualità interattive che permettono l interazione con gli altri agenti e l utente sia indirettamente attraverso l ambiente in cui si trovano, che direttamente attraverso un linguaggio condiviso. In questo capitolo saranno presi in esame i concetti chiave alla base di questo lavoro di tesi. Inizialmente sarà introdotto il concetto di agente e le caratteristiche che lo contraddistinguono, quindi saranno passati in rassegna i sistemi multi-agente. Sarà poi affrontato il problema del filtraggio delle informazioni, il framework di Cultura Implicita e come un sistema di supporto alla Cultura Implicita realizzi un fenomeno di Cultura Implicita. Per concludere saranno analizzate le tecnologie e gli standard alla base dei sistemi multi-agente soffermandosi in particolare su FIPA (Foundation for Intelligent Physical Agents) e sull ambiente di sviluppo JADE (Java Agent Development Environment). 1.1 Il concetto di agente Le idee e le tecnologie alla base del concetto di agente sono state influenzate da una ampia varietà di discipline. L etimologia del termine va però ricercata

8 2 1. Sistemi Multi-Agente e Cultura Implicita nel contesto dell Intelligenza Artificiale (AI), in particolare dell Intelligenza Artificiale Distribuita (DAI), la quale già alla fine degli anni Settanta cominciò a far riferimento agli agenti in qualità di oggetti con la capacità di pensare (cioè agenti intelligenti). Ad oggi non esiste una definizione universalmente accettata di questo termine, così come non esiste una definizione di intelligenza riferita ad un agente. C è invece un consenso generale sul fatto che gli agenti devono avere una serie di caratteristiche particolari quali ad esempio l autonomia, l abilità sociale e la reattività; altre caratteristiche che spesso sono attribuite ad essi assumono diversa importanza a seconda del dominio applicativo. Per alcune applicazioni, ad esempio, la capacità per gli agenti di imparare dall esperienza potrebbe essere fondamentale, mentre per altre del tutto inutile. La definizione riportata di seguito è ripresa da Woolridge and Jennings [61]: Un agente è un entità software situata in un certo ambiente nel quale è in grado di compiere delle azioni in maniera autonoma finalizzate all adempimento dei suoi obbiettivi. Figura 1.1: Relazione tra l agente e l ambiente. L agente riceve alcuni input dall ambiente e produce come output delle azioni che hanno effetto su di esso. L azione di solito è continua nel tempo. La figura 1.1 mostra come il comportamento di un agente sia sensibile all ambiente che lo circonda: ciò significa che la stessa azione effettuata in ambienti diversi può avere effetti differenti. La peculiarità d essere intelligente per un agente si traduce nella capacità di scegliere e di eseguire opportune

9 1.1. Il concetto di agente 3 azioni in modo autonomo e flessibile allo scopo di raggiungere gli obiettivi prefissati. Il problema chiave che quindi si presenta ad un agente è quello della scelta dell azione migliore da intraprendere. La difficoltà nel prendere una decisione può essere dovuta alle diverse caratteristiche dell ambiente, quindi per capire meglio il concetto di agente è necessario prima capirne il suo dominio d azione: nel prossimo paragrafo verrà approfondito il concetto di ambiente in relazione all agente e una sua possibile classificazione Caratteristiche ambientali L ambiente rappresenta l infrastruttura computazionale all interno della quale gli agenti si muovono, operano ed interagiscono tra loro. Esso può essere classificato in base alle seguenti caratteristiche [50]: Accessibile vs. Non accessibile. Un ambiente accessibile permette all agente di svolgere qualsiasi tipo d operazione, di ottenere informazioni complete e aggiornate. La maggior parte degli ambienti (quali il mondo reale o Internet) non offre un tale livello d accessibilità. Deterministico vs. Non deterministico. Un azione in un ambiente deterministico ha un effetto noto a priori. In un ambiente non deterministico la stessa azione, eseguita in istanti diversi, può avere effetti differenti. Statico vs. Dinamico. Un ambiente statico rimane costantemente immutato durante l inattività dell agente. Di contro un ambiente dinamico è sottoposto all azione di molti processi e quindi non è sotto il controllo del singolo agente. Il mondo reale e Internet sono esempi di realtà estremamente mutevoli. Discreto vs. Continuo. Un ambiente è discreto se è possibile compiere su di esso un numero fisso di azioni. Un maggiore livello d accessibilità di un ambiente facilita la costruzione di agenti che operano su di esso. Infatti, considerando che un buon agente deve essere in grado di fare le scelte più giuste e che la qualità delle decisioni dipende dalla qualità delle informazioni a lui accessibili, una maggiore fonte di informazioni aumenta le probabilità di produrre risultati accurati. Un ambiente deterministico produce un risultato ben definito e univoco, mentre un ambiente non deterministico pone l agente di fronte alla possibilità di fallimento nel conseguire i propri obiettivi e ne limita la sfera d influenza. Il non-determinismo è strettamente correlato col dinamismo. Dal punto di

10 4 1. Sistemi Multi-Agente e Cultura Implicita vista di un agente un ambiente dinamico ha due importanti caratteristiche da tenere in considerazione: se più agenti operano sull ambiente nell intervallo tra il tempo t 1 e t 2 allora l ambiente al tempo t 2 non potrà essere lo stesso che al tempo t 1 ; quindi in un ambiente dinamico l agente deve portare a termine una raccolta d informazioni per determinarne lo stato attuale [40]. La seconda proprietà è che altri processi in esecuzione nell ambiente possono interferire con l azione che l agente sta cercando di eseguire [5]. Quindi se l ambiente si trova in un certo stato ϕ e l agente esegue su di esso una certa operazione α funzione di ϕ non è sicuro che l ambiente continui a trovarsi nello stato ϕ durante l esecuzione di α. Questa proprietà suggerisce quanto un ambiente statico sia molto più confortevole e facile da gestire per un agente rispetto ad una ambiente dinamico. L ultima distinzione, tra ambiente discreto e continuo, si può comprendere meglio facendo riferimento agli esempi di Russell e Norvig [50]. Un ambiente discreto ha un numero finito di stati: per esempio il gioco degli scacchi è un ambiente discreto, giacché il numero dei possibili stati in cui si può trovare il gioco, sebbene molto grande è in ogni caso finito, mentre un ambiente continuo può essere ad esempio un viaggio in taxi. In conclusione la classe d ambienti più complessa da gestire è costituita da ambienti inaccessibili, non deterministici, dinamici e continui. Gli ambienti con queste caratteristiche sono chiamati aperti [26]. Le proprietà dell ambiente hanno un importanza fondamentale nel determinare la complessità nel design di un sistema ad agenti, ma non sono gli unici fattori da tenere in considerazione. Nel prossimo paragrafo verrà approfondito il concetto di agente e le caratteristiche che lo contraddistinguono Agenti Intelligenti Un agente è stato definito in maniera generale, come un sistema computazionale che può vivere in ambienti complessi, dotato di sensori che gli permettono di percepire l ambiente e di interagire, soddisfando i propri obiettivi ed eseguendo i compiti per cui è stato progettato. Secondo Woolridge and Jennings [61] un sistema computazionale per essere considerato un agente intelligente deve essere almeno dotato delle seguenti caratteristiche fondamentali: Autonomia: rappresenta l assunzione che l agente abbia un qualche tipo di controllo diretto sulle proprie azioni e sul suo stato interno senza l intervanto diretto di persone esterne. Abilità sociale: indica la capacità di interagire con altri agenti e persone per coordinare il proprio comportamento e per negoziare risorse e attività al

11 1.1. Il concetto di agente 5 fine di conseguire i propri obiettivi. Grazie al coordinamento gli agenti sono in grado di risolvere eventuali conflitti che possono insorgere e realizzare compiti comuni. La comunicazione avviene per mezzo di un linguaggio di comunicazione per agenti [23]. Reattività: gli agenti intelligenti sono in grado di percepire l ambiente che li circonda, reagire in modo tempestivo ai cambiamenti che occorrono in esso e prendere l iniziativa. Pro-attività: gli agenti intelligenti hanno un comportamento che consente loro di generare eventi nell ambiente circostante e di coordinare le proprie attività per tempo. Mobilità: gli agenti sono in grado di migrare da un sistema all altro per accedere a risorse remote o per incontrare altri agenti e cooperare con loro. Questa caratteristica, chiamata anche remote programming, può essere considerata un alternativa al tradizionale Client/Server programming basato sul paradigma delle Remote Procedure Call (RPC) [37, 59]. Adattamento: rappresenta la qualità dell agente di modificare il proprio comportamento in seguito alle mutate condizioni dell ambiente circostante. Asincronismo: rappresenta la capacità di saper comunicare con gli altri agenti in ogni momento tramite l invio e la ricezione di atti comunicativi che possono essere interpretati o ignorati in base ai propri obiettivi. Ciò significa che un agente può essere attivato all occorrenza di un certo evento o timer. Gli agenti intelligenti si differenziano tra loro per il compito che svolgono all interno di un sistema e per questo spesso vengono identificati con terminologie più specifiche: in precedenza sono stati introdotti i cosiddetti mobile agents, agenti in grado di muoversi all interno di una rete. Agenti che interagiscono direttamente con l utente sono spesso chiamati personal assistants o interface agents mentre agenti che interagiscono uno con l altro per raggiungere un obiettivo comune sono identificati come cooperative agents [37]. I motori di ricerca rappresentano forse l esempio più conosciuto di Personal Assistant: essi non forniscono soltanto un interfaccia intelligente all utente, ma fanno anche uso su vasta scala, dei servizi disponibili in rete. Questo tipo di agenti veniva chiamato in passato Knowbot o Softbot [17]. Quando un agente colleziona informazioni, non soltanto nasconde la complessità dell infrastruttura di rete, ma rende anche invisibile l eterogeneità delle risorse disponibili, delle sorgenti e dei protocolli di accesso. Il Softbot colleziona le

12 6 1. Sistemi Multi-Agente e Cultura Implicita informazioni, le combina, le filtra e presenta i risultati all utente. A partire dal 1995 presero vita diverse implementazioni di Softbots basate sulla tecnologia ad agenti, conosciute come Web-Crawlers, Spiders e Robots [35]. Per alcuni ricercatori, in particolare quelli che lavorano in AI, il termine agente ha un significato più specifico. Essi indicano l agente come un sistema computazionale che, oltre ad avere le caratteristiche elencate sopra, viene progettato o implementato utilizzando dei concetti che sono comunemente associati agli esseri umani. E abbastanza comune in AI caratterizzare un agente utilizzando nozioni tipiche della mente umana come avviene ad esempio nell architettura BDI. Formalizzazioni di vari aspetti dell architettura sono state fatte da Benerecetti [6], Rao [47] e Giunchiglia [24]. Altri ricercatori in AI si sono persino spinti ad implementare agenti emozionali [3, 4]. Negli anni Novanta sono stati portati avanti tre progetti che possono essere considerati fondamentali per la nascita e lo sviluppo della cosiddetta tecnologia ad agenti [46]. Questi progetti sono: Agent() Knowledge Sharing Effort Telescript Agent() può essere considerato il primo linguaggio ad agenti. Sviluppato da Yoav Shoham nei primi anni Novanta, introduceva per la prima volta il concetto di programmazione orientata agli agenti ed era dotato di un linguaggio di comunicazione tra agenti [53]. Questo linguaggio fa riferimento a teorie del linguaggio parlato elaborate da Searle [51]. Knowledge Sharing Effort va ricordato in quanto ha portato allo sviluppo di KQML (Knowledge Query Manipulation Language), un protocollo completo per la comunicazione tra agenti ed applicazioni, e KIF (Knowledge Interchange Format), un formato per lo scambio di conoscenza tra sistemi eterogenei. Per una dettagliata descrizione di KQML si può far riferimento a Finin [18] e Labrou [36]. Telescript rappresenta il primo linguaggio di programmazione commerciale basato sugli agenti sviluppato dalla General Magic nel Questo per primo ha introdotto il concetto di mobilità del codice in alternativa alle remote procedure call e il problema della gestione della sicurezza in sistemi ad agenti distribuiti [59]. Esso supporta esplicitamente l idea di agente come processo con la capacità di spostarsi autonomamente all interno di una rete e di riprendere l esecuzione in aree remote. Questo linguaggio ha posto le basi per lo sviluppo di agenti mobili basati sul linguaggio di programmazione Java. Spesso gli agenti sembrano possedere caratteristiche molto simili a quelle normalmente associate agli oggetti. Nel prossimo paragrafo verrà discusso

13 1.1. Il concetto di agente 7 come il paradigma di sviluppo software orientato agli oggetti pone le basi per quello orientato agli agenti Agenti ed oggetti Il più importante passo avanti fatto nel campo del software engineering è rappresentato dall utilizzo, da parte dello sviluppatore, di astrazioni ad alto livello per comprendere ed amministrare la complessità delle grandi architetture software, sia a livello concettuale che implementativo [2, 62]. Astrazione procedurale, programmazione strutturata, tipi di dato astratto e oggetti riassumono l evoluzione del concetto di astrazione nel paradigma della programmazione degli ultimi trent anni. Questi concetti hanno permesso agli sviluppatori di affrontare e gestire problematiche sempre più complesse da un punto di vista più astratto, lontano da un ottica puramente implementativa. Gli agenti rappresentano l astrazione successiva, uno strumento potente per meglio concettualizzare, progettare ed implementare sistemi software complessi e distribuiti. Spesso si è portati a confondere gli agenti con gli oggetti o a non riuscire ad identificare nessuna nuova idea o novità che li caratterizzi. Effettivamente, considerando soltanto le qualità generali che contraddistinguono le due tecnologie, tale errore è giustificabile. Gli oggetti sono definiti come entità computazionali che possono trovarsi in un insieme di stati, sono in grado di svolgere determinate azioni o metodi su questi e comunicano tra loro con scambio di messaggi. E naturale che vi siano ovvie somiglianze tra le due tecnologie, ma ci sono anche rilevanti differenze [58]. La prima di queste consiste nel grado di autonomia degli agenti rispetto agli oggetti. Uno dei concetti più importanti della programmazione object-oriented è l incapsulamento, che indica la capacità di controllo, da parte degli oggetti, del loro stato interno. In linguaggi di programmazione come C++ o Java è possibile dichiarare variabili e metodi privati, accessibili solo all interno dello stesso oggetto, oppure pubblici e quindi accessibili dall esterno. In questo modo l oggetto, seppur in grado di esibire un certo livello d autonomia e controllo sul suo stato interno, non ha invece nessun tipo di controllo sul proprio comportamento. Vale a dire, se un oggetto ha dei metodi pubblici, accessibili da altri oggetti (e ciò è quasi sempre vero altrimenti risulterebbe isolato all interno del sistema), essi possono invocarlo ogniqualvolta lo desiderano, quindi l oggetto che fornisce il metodo non ha alcuna autorità sulla sua esecuzione. L idea alla base del concetto di agente differisce da quella degli oggetti in quanto generalmente non vengono forniti metodi accessibili ad altri agenti per facilitare l interazione. Più precisamente, non si deve pensare agli agenti quali entità che invocano i metodi di altri agenti, ma piuttosto come entità

14 8 1. Sistemi Multi-Agente e Cultura Implicita che richiedono determinate azioni. Inoltre la richiesta può essere accolta oppure rifiutata lasciando il controllo sulla decisione all agente che ha ricevuto la richiesta e non a colui che l ha inoltrata. La distinzione tra gli oggetti e gli agenti è spesso riassunta in uno slogan: Objects do it for free; agents do it for money 1. Un altra importante differenza tra i due modelli risiede nel fatto che l agente a differenza dell oggetto, possiede un proprio thread di controllo nel sistema. Naturalmente un grande sforzo è stato fatto negli ultimi anni nell implementare il concetto di concorrenza nella programmazione object-oriented, ma nel caso dell agente questo concetto combinato con un maggior grado d autonomia ha implicazioni differenti: l oggetto rappresenta un entità sincrona che agisce all interno di un sistema, mentre l agente è un entità asincrona dotata di maggior indipendenza decisionale. 1.2 Sistemi Multi-agente Gli agenti operano in un ambiente che tipicamente è sia computazionale che fisico e può contenere o no altri agenti. Sebbene vi siano delle situazioni in cui un agente può operare efficacemente da solo, il crescente livello d interconnessione tra i computer rende queste situazioni assai rare. Nei paragrafi precedenti sono state definite le caratteristiche e la struttura di un singolo agente, mentre questo paragrafo si focalizza invece sui sistemi con più agenti. Talvolta il numero degli agenti può essere molto numeroso, con evidenti difficoltà nel gestire ciascuno di essi singolarmente, quindi risulta più conveniente trattarli in modo collettivo come società di agenti, studiando le architetture che li caratterizzano. Nel corso del paragrafo sarà descritto come analizzare, descrivere e progettare ambienti in cui gli agenti possono operare efficacemente assieme e interagire in maniera produttiva. L ambiente fornisce l infrastruttura computazionale che rende possibili le interazioni, come i protocolli di comunicazione e interazione tra agenti 2 e le Strategie di Coordinamento e Negoziazione che hanno lo scopo di fondere gli agenti in un gruppo d individui operanti in modo coerente. Ciò permette la sincronizzazione delle attività l utilizzo ottimale delle diverse abilità del singolo ed evita il sorgere di situazioni di caos durante eventuali conflitti d interesse tra due o più agenti. 1 Lo slogan è un modo per sottolineare la maggiore indipendenza decisionale che caratterizza l agente. 2 I protocolli di comunicazione permettono agli agenti di scambiarsi i messaggi e comprenderli, mentre i protocolli di interazione consentono di avere conversazioni, cioè una serie strutturata di messaggi.

15 1.2. Sistemi Multi-agente Architetture per agenti Le architetture che caratterizzano i sistemi multi-agente possono essere classificate in tre categorie principali: architetture gerarchiche, architetture federate e architetture autonome [52]. Architetture gerarchiche Sono caratterizzate da una struttura a livelli dove ciascuno di questi esercita la funzione di controllo e coordinamento sulle risorse e informazioni del livello inferiore. In figura 1.2 è rappresentata questo tipo d architettura nel caso in cui gli agenti sono entità autonome e i livelli soltanto tre; è possibile, in generale, avere n livelli nella struttura. Figura 1.2: Architettura multi-agente di tipo gerarchico. Questo approccio nonostante possa essere criticato per la sua centralità, è ancora largamente adottato nell implementazione di sistemi multi-agente utilizzabili in realtà aziendali. Architetture federate Le architetture federate rappresentano la soluzione più utilizzata nello sviluppo di sistemi multi-agente. In letteratura se ne possono identificare principalmente di due tipi: l architettura federata basata su facilitator e basata su matchmaker.

16 10 1. Sistemi Multi-Agente e Cultura Implicita Approccio tramite facilitator Prevede che gli agenti siano organizzati in gruppi ciascuno dei quali è presieduto da un particolare tipo di agente detto facilitator, come rappresentato in figura 1.3 Questo agente si pone come mediatore nella comunicazione tra agenti del gruppo e del sistema instradando i messaggi verso i destinatari corretti e smistando quelli in arrivo. Effettua inoltre un monitoraggio costante dell attività del gruppo di agenti a cui è a capo coordinandone, se necessario, le attività. Figura 1.3: Modello di architettura federata basata su facilitator. Questo tipo d architettura non prevede comunicazione diretta tra agenti semplici, quindi eventuali comunicazioni vanno fatte esclusivamente al facilitator il quale si occupa di interpretarle ed attivare determinate attività nel gruppo (instradamento interpretativo) o di instradarle verso l agente opportuno (instradamento basato su destinatario). Approccio tramite broker Questa struttura prevede la presenza di un agente particolare detto broker col compito di ricevere i messaggi dagli altri agenti, comprendere la richiesta e quindi individuare e contattare gli agenti più adatti al soddisfacimento della

17 1.2. Sistemi Multi-agente 11 stessa. I broker possono svolgere azioni diverse secondo il tipo di sistema in cui sono inseriti. Figura 1.4: Modello d architettura federata basata su broker. La figura 1.4 mostra la struttura generale di un architettura federata basata su broker. Questo agente svolge la funzione di intermediario tra agenti che richiedono un determinato servizio (client agents) e agenti che lo offrono (server agents). A differenza dell approccio tramite facilitator in cui esiste un agente responsabile del proprio gruppo, in questo tipo di architettura ciascun agente può rivolgersi ad un broker qualsiasi presente nel sistema allo scopo di trovare il più adatto a svolgere un determinato compito. Rispetto alle architetture gerarchiche, le architetture federate offrono un maggior livello di scalabilità, risultando quindi più adatte alla gestione di problematiche complesse e distribuite. Architetture autonome Quando si è discusso il concetto di agente, si è visto che un agente per essere considerato intelligente dev essere dotato di caratteristiche come: Autonomia: assenza di controllo o gestione da parte di altri agenti software o umani. Abilità sociale: possibilità di comunicare e interagire direttamente con altri agenti nel sistema o all esterno Reattività: essere dotato di conoscenza di se stesso, degli altri agenti e dell ambiente in cui vive

18 12 1. Sistemi Multi-Agente e Cultura Implicita Pro-attività: avere propri obiettivi e un associato insieme di motivazioni. Figura 1.5: Modello di architettura autonoma. Nelle architetture autonome (vedi figura 1.5) nessuna comunicazione e nessuno stato di conoscenza è consolidato: ogni agente deve conoscere dove e quando i messaggi sono spediti, quali altri agenti sono disponibili e quali capacità hanno gli altri agenti. Di conseguenza gli agenti appartenenti a questo tipo di architettura per un corretto funzionamento, devono possedere tutte le caratteristiche elencate sopra. In generale non si può stabilire a priori quale architettura sia migliore delle altre, ma ciascuna si presta meglio a risolvere problematiche specifiche. Le architetture autonome si prestano bene allo sviluppo di sistemi multi-agente distribuiti, nel caso i singoli sistemi siano costituiti da un numero contenuto di agenti, mentre la architetture federate sono più appropriate per lo sviluppo di sistemi complessi, dinamici, composti da un gran numero di agenti di tipo diverso. La definizione di agente, quale entità autonoma in grado di prendere decisioni, sembrerebbe entrare in conflitto con la definizione di architettura federata in cui la capacità dell agente del gruppo dipende fortemente dalle capacità dell agente broker o facilitator. In realtà la delega di determinate funzionalità ad un capogruppo offre un maggior livello di flessibilità al sistema: l aggiunta, ad esempio, di un nuovo membro del gruppo non necessita dell aggiornamen-

19 1.3. Information Overloading e Cultura Implicita 13 to delle conoscenze di ciascun agente del gruppo, bensì del rappresentante soltanto. L organizzazione non lucrativa FIPA sta portando avanti un processo di standardizzazione dei sistemi multi-agente per mezzo della definizione di un insieme di norme che permettono ad una società di agenti di interagire, operare ed essere gestiti, e un architettura che ricalca in parte le caratteristiche enunciate poc anzi. Le funzionalità offerte da un sistema multi-agente aderente allo standard FIPA saranno ampiamente discusse nel corso del paragrafo Information Overloading e Cultura Implicita La crescente diffusione di Internet rende il patrimonio delle informazioni disponibili attraverso la rete molto vasto ed in continuo aumento, per questo la ricerca informatica si sta muovendo per cercare una soluzione al problema. A tal proposito si possono individuare fondamentalmente due approcci: il filtraggio d informazioni (Information Filtering) e il recupero d informazioni (Information Retrieval). Nel corso dei prossimi paragrafi saranno approfonditi questi due concetti e sarà introdotto il concetto di Cultura Implicita, che si prefigge lo scopo di risolvere il problema del trasferimento di conoscenza tra un gruppo di agenti Information Retrieval e Information Filtering L idea alla base di questi metodi è molto simile in quanto entrambi hanno come comune denominatore il render disponibile all utente informazioni rilevanti per le proprie esigenze, minimizzando le informazioni inutili. La principale differenza va cercata nel bisogno informativo. Alla categoria dell Information Retrieval appartengono le richieste d informazione specifiche del momento dove ciascuna richiesta rappresenta un entità discreta e indipendente che non influenza la successiva e le informazioni sono contenute solitamente in database di tipo statico. L Information Filtering ha invece il fine di soddisfare interessi a lungo termine dove ciascuna informazione ottenuta è in parte funzione delle precedenti (basandosi per esempio sul feedback di altri utenti) ed è spesso contenuta in database dinamici, vale a dire continuamente aggiornati. In letteratura sono emersi due paradigmi principali per i sistemi di filtraggio (detti anche Recommender Systems): quello basato sul contenuto che suggerisce ad un certo utente informazione simile a quella che ha dimostrato gradire in passato e quello collaborativo in cui l obiettivo è quello di

20 14 1. Sistemi Multi-Agente e Cultura Implicita trovare utenti con gusti simili che raccomandino all utente i prodotti che loro stessi hanno apprezzato. Content-based Information Filtering L Information Filtering basato sul contenuto può essere suddiviso in due categorie a seconda che il filtraggio avvenga tramite regole o profilo utente. Nel primo caso un filtro potrebbe essere applicato al mittente dei messaggi di posta elettronica in modo da bloccare messaggi sospetti. L approccio alternativo risulta più interessante in quanto il sistema possiede il profilo dell utente che riassume tutte le caratteristiche degli elementi graditi e non, in modo da poter discriminare su elementi non ancora valutati. Il profilo utente può essere creato e aggiornato manualmente oppure in modo automatico dal sistema osservando il comportamento dell utente. Purtroppo questi metodi hanno diversi inconvenienti tra cui: la necessità di estrarre le caratteristiche dall informazione: si tratta di un processo troppo laborioso ma abbastanza accurato se fatto manualmente, poco accurato se generato da una procedura automatica. L eventuale presenza di contenuti multimediali complica ulteriormente la procedura; per alcuni tipi di ricerca, la limitazione del sistema a raccomandare soltanto elementi simili a quelli che l utente ha già scelto in passato, potrebbe rappresentare una forte limitazione. Collaborative Information Filtering A differenza del Content-based Information Filtering che consiglia all utente elementi simili a quelli che ha dimostrato gradire in passato, questo metodo si basa su un meccanismo di suggerimento costruito sulle opinioni di altri utenti con gusti simili. Il Collaborative Filtering può essere suddiviso in due tipologie [39]: passivo e attivo. I voti espressi dall utente relativamente ad un determinato contenuto possono essere raccolti in un unico database e le raccomandazioni essere basate su opinioni di persone simili per gusti. In questo caso si parla di in-place Collaborative Filtering o passive Collaborative Filtering in quanto non c è relazione o connessione tra la persona che esprime il voto e coloro che usufruiscono di queste raccomandazioni. Un altra pratica consiste nel consigliare direttamente ad amici o colleghi di interessanti documenti. Tale approccio è denominato active Collaborative Filtering in quanto c è l intento da parte della persona che cerca e valuta l oggetto di condividerne la conoscenza con particolari persone.

21 1.3. Information Overloading e Cultura Implicita 15 Ciò che in generale nel Collaborative Filtering avviene è molto vicino a quanto avviene nella realtà quotidiana quando ad esempio prima di vedere un film al cinema o provare un nuovo ristorante si chiede consiglio ad amici che sappiamo condividere i nostri stessi gusti. Il sistema può essere facilmente automatizzato ed esteso in modo da considerare più utenti anche mai conosciuti direttamente ma che, secondo le informazioni raccolte dal sistema, presentano le stesse preferenze. Uno dei primi sistemi sviluppati in grado di raccogliere i gusti dell utente è GroupLens [48], utilizzato per filtrare gli articoli dei newsgroup. Altri sistemi più intelligenti sono in grado di raccogliere implicitamente dei voti osservando il comportamento dell utente [55]. Il Collaborative Filtering riesce a superare alcune delle limitazioni della soluzione content-based: l informazione trattata dal sistema può essere di qualsiasi natura, multimediale o testo, in quanto il sistema non necessita di analizzarla direttamente per estrarne le caratteristiche descrittive, ma soltanto tener traccia del tasso di gradimento di altri utenti. Inoltre gli elementi consigliati dal sistema sono abbastanza eterogenei e di qualità, per il semplice fatto che sono consigliati da altri utenti e non da una procedura automatica. Questo approccio presenta, nonostante tutto, diversi lati negativi: A meno che le preferenze dell utente non siano raccolte in maniera implicita, l utente deve sforzarsi di esprimere il maggior numero possibile di suggerimenti sugli oggetti. Gli oggetti inseriti da poco nel sistema che non hanno ancora ricevuto nessun punteggio di feedback da parte degli utenti, risultano invisibili. Utenti con gusti inusuali non beneficiano del sistema in quanto le loro opinioni non concordano né discordano con nessuno degli altri Cultura Implicita Il Collaborative Filtering può essere visto come un istanza di un concetto più generale che va sotto il nome di Cultura Implicita. Questo nuovo concetto è stato introdotto per la prima volta da Blanzieri e Giorgini nel 2001 [11, 12, 13]. Un fenomeno di Cultura Implicita è quello che s instaura quando un gruppo di agenti agisce in maniera conforme alla cultura di un altro gruppo senza il desiderio né la necessità di conoscere la cultura stessa e quindi senza interazione diretta. Nel momento in cui un agente comincia ad agire in un nuovo ambiente con conoscenze ed abilità limitate, il suo comportamento non può essere che inferiore a quello ottimale. I problemi che un nuovo agente deve fronteggiare

22 16 1. Sistemi Multi-Agente e Cultura Implicita sono ancora più complessi se nell ambiente sono presenti altri agenti con maggiori conoscenze e capacità. Inoltre essi potrebbero non volere condividere la loro conoscenza oppure non essere in grado di comunicarla al nuovo agente. Per risolvere questo problema si potrebbe migliorare la capacità dell agente in termini di comunicazione, conoscenza e apprendimento, soluzione che tuttavia si presenterebbe alquanto complessa. Il framework di Cultura Implicita adotta un approccio alternativo, applicabile in un ambiente almeno parzialmente sotto controllo: invece di agire sulle capacità del singolo agente è possibile modificare la visione che lo stesso ha dell ambiente e quindi, le sue azioni. Ciò porterebbe lo stesso agente a comportarsi in maniera conforme agli altri membri del gruppo e quindi condividere la stessa cultura. Questo si concretizza attraverso la proposta agli agenti di opportune scene conformi alle loro azioni passate, in relazione ai componenti del gruppo con cui manifestano maggiore vicinanza e riguardo alle azioni che devono essere favorite rispetto ad altre in accordo con la teoria del gruppo. L assunzione di base è che il mondo in cui gli agenti agiscono sia composto di oggetti e agenti. In questo mondo è possibile compiere delle azioni che hanno come argomento oggetti o altri agenti. Prima di eseguire un azione, un agente si trova davanti una scena costituita da una porzione di mondo in cui può eseguire delle azioni situate. L azione effettuata dall agente dipende dall ambiente e dai propri stati interni quindi in generale non predicabile in maniera deterministica ma tuttavia si assume che possa essere espressa in termini di probabilità e valori attesi. Le azioni situate si suppone siano predette da una teoria espressa in un linguaggio opportuno la quale cattura le abilità e le conoscenze che gli agenti hanno dell ambiente. Nuovi agenti che eseguono azioni conformi alla teoria culturale validata dal gruppo risolvono il problema del loro comportamento subottimale. Quindi il termine Cultura Implicita rappresenta il fatto di avere un gruppo di agenti tali che le loro azioni situate soddisfano la teoria culturale validata di un altro gruppo senza la necessità che gli agenti interagiscano tra di loro. Un fenomeno di Cultura Implicita per essere realizzato necessita di un Sistema di Supporto alla Cultura Implicita (SICS). In figura 1.6 è rappresentata l architettura generale del SICS. Il simbolo ɛ indica l ambiente ovvero un sottoinsieme dell unione dell insieme degli agenti e dell insieme degli oggetti. Con le lettere a, b, c vengono indicati gli agenti, con α, β, γ le azioni compiute da questi e con σ una scena che rappresenta un sottoinsieme dell ambiente e delle azioni possibili su di esso. Quando l agente esegue un azione in una scena, l ambiente reagisce proponendo all agente una nuova scena: facendo riferimento alla Figura 1.6, data

23 1.3. Information Overloading e Cultura Implicita 17 Figura 1.6: Architettura del SICS. l azione situata α t eseguita dall agente a nella scena σ t all istante t, viene determinata, all istante t + 1, la nuova scena σ t+1. In generale la relazione tra le azioni eseguite e la nuova scena dipende dalle caratteristiche dell ambiente e in particolare dalle leggi che ne descrivono la dinamica. Lo scopo principale del SICS è quello di stabilire un fenomeno di Cultura Implicita che viene raggiunto attraverso due fasi: 1. L elaborazione di una teoria culturale validata Σ da una data teoria a priori Σ 0 e dall insieme delle azioni situate eseguite dal gruppo G. 2. La presentazione ad un gruppo G di un insieme di scene tali che le azioni situate attese dei membri di tale gruppo soddisi Σ. L architettura (vedi figura 1.6) è composta di tre componenti di base: Observer che si occupa di immagazzinare in un database (DB Observ.) le azioni situate eseguite dagli agenti del gruppo. Inductive Module che usando i dati contenuti nel database e la teoria a priori Σ 0 induce una teoria culturale validata Σ.

24 18 1. Sistemi Multi-Agente e Cultura Implicita Composer che propone ad un gruppo G un insieme di scene σ t+1 σ t+1 = σ t+1 [i] = F ɛ (α t, σ t, t) tali che le loro azioni situate attese e t+1 soddisfino Σ. Nella situazione rappresentata in figura 1.6 il Composer propone agli agenti a, b, c le scene σ t+1, σ t+1, σ t+1 rispettivamente. Da notare che in questo caso gli agenti b e c appartengono sia al gruppo G che G ; ciò significa che anche le loro azioni situate sono immagazzinate nel DB Oserv. e sono quindi utilizzate per elaborare la teoria Σ e le nuove scene Usi precedenti del SICS In questa sezione vengono presentati nel dettaglio gli usi precedenti del SICS, i quali dimostrano come attraverso il fenomeno di Cultura Implicita, il SICS aiuti a risolvere il problema del trasferimento di conoscenza senza bisogno alcuno di rappresentarla esplicitamente e migliori l interazione tra agenti [12][13]. SICS collaborativo L obiettivo di un SICS è stabilire un fenomeno di Cultura Implicita. Ciò si verifica quando un gruppo di agenti si comporta in maniera consistente con la cultura di un altro gruppo senza interazione diretta o sforzo addizionale di alcuno. Questo è quanto avviene anche nei sistemi di Collaborative Filtering (vedi paragrafo 1.3.1) dove gli elementi sono raccomandati basandosi sui giudizi espressi da un gruppo di agenti del sistema. Il termine collaborative rappresenta il fatto che l unica cosa che conta nel processo di raccomandazione sono gli altri agenti e le loro preferenze espresse tramite azioni di voto e non il tipo di contenuto associato. In [11] è mostrato come sia possibile riprodurre in maniera abbastanza semplice le funzionalità del CF in un SICS. La figura 1.7 mostra l architettura del SICS nel caso particolare del CF. L architettura consiste solo dell Observer e del Composer e la teoria culturale Σ è direttamente inserita nel Composer. Tale teoria è un concetto fondamentale nel CF in quanto offre la possibilità di fare previsioni sui giudizi espressi da un agente sulla base delle preferenze espresse da agenti in qualche modo simili. Nel caso particolare del CF i suggerimenti vengono forniti ad un solo agente per volta ( G = 1). SICS per il supporto all interazione multi-agente In un sistema multiagente, un SICS può essere visto come una capacità associata all intero sistema [12]. In questo caso il SICS influenza le azioni sul sistema facendo in modo che tutti gli agenti si comportino in accordo con la

25 1.3. Information Overloading e Cultura Implicita 19 Figura 1.7: Un SICS per il collaborative Filtering. teoria culturale. In figura 1.8 è illustrata in dettaglio un architettura concreta per il SICS che offre supporto all interazione multiagente. In particolare il SICS interagisce con il sistema attraverso una serie di interfacce: interfacce d osservazione che catturano le azioni degli agenti appartenenti al gruppo G; interfacce d osservazione/attuazione che catturano le azioni degli agenti appartenenti al gruppo G proponendo a questi ultimi le scene prodotte dal SICS. In un sistema multiagente basato sul meccanismo di brokering (vedi paragrafo 1.2.1) il SICS può essere utilizzato dai vari broker per suggire il servizio più adatto a soddisfare l agente che l ha richiesto. In questo caso il SICS attraverso le interfacce d osservazione raccoglie le osservazioni sugli agenti client (gruppo G) quindi ad ogni richiesta i broker (gruppo G ) utilizzeranno le interfacce d osservazione/attuazione per ottenere, sulla base delle osservazioni raccolte, un opportuno suggerimento dal SICS. Come già osservato nel paragrafo precedente, questo meccanismo non è altro che una generalizzazione del CF, dove la similarità tra gli agenti è elaborata sulle azioni eseguite e non

26 20 1. Sistemi Multi-Agente e Cultura Implicita Figura 1.8: SICS per il supporto all interazione multi-agente. sui voti espressi. In questo caso la presenza del SICS contribuisce a far decrescere la quantità di richieste insoddisfatte aumentando complessivamente il numero di interazioni andate a buon fine. SICS come capacità di ogni agente Nella soluzione proposta in questo lavoro, il SICS è visto come capacità interna di ogni agente (vedi figura 1.9). Per mezzo del SICS, gli agenti possono inviare e ricevere consigli sulla base della loro esperienza. Ciò consente agli agenti di aiutarsi reciprocamente nella ricerca di servizi o informazioni. In altre parole l agente, attraverso il proprio SICS, supporta non solo le proprie richieste ma anche quelle degli altri agenti, favorendo quindi il processo di interazione all interno del gruppo. In questo caso i gruppi G e G coincidono quindi d ora in poi si farà riferimento solo al gruppo G(= G = G ); questo sarà costituito di volta in volta da tutti gli agenti osservati dall agente che ha attivato il proprio SICS. In un ottica di progetto e sviluppo di agenti software l architettura del SICS fornisce un insieme di capacità: capacità di osservare: avviene tramite l Observer e permette di immagazzinare le azioni situate degli agenti del gruppo G; capacità di indurre regole: consente attraverso l Inductive Module di usare le azioni immagazzinate dall Observer per estrarre una teoria validata Σ;

27 1.4. Tecnologie e Standard per Sistemi Multi-Agente 21 Figura 1.9: Gruppo di agenti dotati di SICS. capacità di suggerire: è data dal Composer il quale utilizza la teoria culturale Σ e le osservazioni immagazzinate dall Observer per proporre agli agenti del gruppo G un insieme di scene tali che le loro azioni situate attese soddisfino la teoria culturale. La tecnologia ad agenti rappresenta tutt oggi un settore di ricerca attivo, di conseguenza non esistono ancora degli standard riconosciuti su cui fare affidamento. Nonostante questo diverse organizzazioni, tra cui FIPA, si stanno muovendo per definire i concetti fondamentali di questa nuove tecnologia. A questo argomento sarà dedicato il prossimo pargrafo. 1.4 Tecnologie e Standard per Sistemi Multi- Agente Al momento attuale non esiste uno standard riconosciuto e definitivo per la tecnologia ad agenti. Nonostante ciò esiste un associazione internazionale no-profit di aziende, la Foundation for Intelligent Phisical Agents (FIPA) il cui fine è produrre le specifiche per una tecnologia ad agenti che possa, in futuro, diventare uno standard. FIPA definisce tutte le norme che permettono ad una società di agenti di interagire, operare ed essere facilmente gestita.

28 22 1. Sistemi Multi-Agente e Cultura Implicita Il lavoro di FIPA ha attivato delle iniziative di standardizzazione da parte di altre organizzazioni (Agent Society, Internet Engineering Task Force, Object Management Group, WWW Consortium). Le specifiche FIPA saranno approfondite nel paragrafo A livello implementativo esistono diverse piattaforme ad agenti che adottano lo specifiche FIPA tra cui: Agent Development Kit April Agent Platform Comtech Agent Platform FIPA-OS Grasshopper Jack Intelligent Agents Java Agent Development Environment (JADE) Lightweight Extesible Agent Platform (LEAP) ZEUS Il sistema sviluppato per questo lavoro di tesi è basato sulla piattaforma Jade, trattata nel paragrafo Specifiche FIPA La Foundation for Intelligent Physical Agents [19], è un organizzazione non lucrativa che si propone di definire delle regole standard per sistemi ad agenti. E stata fondata a Ginevra nel 1996 ed è attualmente composta da diverse società ed organizzazioni; all inizio, il suo obiettivo principale erano le applicazioni robotiche (da cui il termine physical nella sigla FIPA), poi gradualmente l interesse si è spostato nel campo degli agenti software. Sebbene si parli comunemente di standard FIPA, tale denominazione non è del tutto corretta, in quanto le specifiche prodotte da essa sono ancora ad un livello sperimentale; la realtà è che esse, tuttavia, sono adottate da buona parte della comunità degli sviluppatori di agenti, costituendo dunque uno standard de facto. Le specifiche FIPA sono classificate per argomenti; nei prossimi paragrafi saranno analizzate nel dettaglio alcune delle caratteristiche FIPA più significative per questo lavoro di tesi.

29 1.4. Tecnologie e Standard per Sistemi Multi-Agente 23 Piattaforma ad agenti FIPA Una piattaforma ad agenti (AP), secondo le specifiche FIPA, rappresenta la struttura all interno della quale gli agenti esistono ed operano. Il modello raffigurato in Figura 1.10 è il modello logico di riferimento per la creazione, registrazione, localizzazione, comunicazione e migrazione di agenti: le entità contenute nel modello sono insiemi di capacità logiche (cioè servizi) e non implicano nessun tipo di configurazione fisica. Figura 1.10: Modello di riferimento per la piattaforma ad agenti secondo le specifiche FIPA [20]. FIPA si concentra soprattutto sul modello d interazione tra gli agenti mentre i dettagli implementativi della piattaforma e degli agenti sono lasciati allo sviluppatore. Il modello di riferimento consiste dei seguenti componenti logici, ciascuno dei quali rappresenta un insieme di capacità: Agent: è un processo computazionale dotato di funzionalità autonome di comunicazione basate sull Agent Communication Language (ACL). L agente rappresenta il principale protagonista all interno della piattaforma ed è in grado di svolgere uno o più servizi secondo un modello di esecuzione unificato e integrato: ad esso dev essere associato un proprietario

30 24 1. Sistemi Multi-Agente e Cultura Implicita e una stringa di identificazione detta Agent Identifier (AID), che lo distingue univocamente nell universo degli agenti. Per poter comunicare con altri agenti deve registrarsi su dei transport address, degli indirizzi che gli permettono di essere localizzato. Directory Facilitator (DF): è un agente opzionale che, se presente, tiene traccia dei servizi offerti dagli agenti presenti nella piattaforma. Ciascun agente deve registrare i propri servizi nel DF sul quale può anche eseguire delle ricerche per verificare i servizi offerti da altri. Agent Management System (AMS): è un componente obbligatorio e unico per ciascuna piattaforma: esso esercita la funzione di supervisore controllando l accesso, l uso dell AP e la creazione, cancellazione e modifica degli agenti. L AMS contiene una lista di AID, ciascuno dei quali contenente il nome unico dell agente e una serie di trasport address per comunicare con altri agenti. Un agente deve sempre registrarsi ad un AMS per avere un AID valido. Message Trasport Service (MTS) o Agent Communication Channel (ACC): è il protocollo di comunicazione utilizzato sia dagli agenti all interno dello stessa piattaforma che tra agenti appartenenti a piattaforme diverse. Agent Platform (AP): La piattaforma può essere vista come un infrastruttura per agenti all interno della quale essi vivono ed interagiscono. Tale struttura è formata da computer, sistema operativo, software di supporto e i componenti FIPA elencati poc anzi (DF, AMS, MTS). L implementazione dell AP non è trattata nelle specifiche FIPA e pertanto è lasciata allo sviluppatore. E opportuno ricordare che gli agenti che appartengono allo stesso AP non devono necessariamente trovarsi nello stesso computer, ma possono essere distribuiti nella rete. Software: rappresenta l insieme delle risorse esterne a cui l agente può far riferimento. Gli agenti possono accedere a software esterni per aggiungere ad esempio nuovi servizi, acquisire nuovi protocolli di comunicazione, effettuare operazioni remote, ecc. Un particolare sforzo è stato svolto da parte di FIPA, per definire il protocollo ACL d interazione tra agenti. Nel prossimo paragrafo ne verrà chiarito il funzionamento.

31 1.4. Tecnologie e Standard per Sistemi Multi-Agente 25 Linguaggio di comunicazione FIPA-ACL I linguaggi di comunicazione per agenti sono recentemente diventati un punto focale nel campo d indagine dei sistemi multi-agente, soprattutto riguardo ai cosiddetti sistemi aperti, che richiedono un supporto di comunicazione uniforme e condiviso. Anche se non esiste ancora un linguaggio di comunicazione per agenti universalmente accettato, tutte le proposte più significative assumono che la comunicazione tra agenti vada trattata in termini di atti linguistici [1, 51], detti atti comunicativi. Dopo aver svolto un importante ruolo nei modelli della comunicazione uomo-macchina sviluppati nell ambito dell intelligenza artificiale, gli atti linguistici sono stati adottati come fondamento della comunicazione tra agenti dai ricercatori che hanno proposto il linguaggio KQML e da FIPA. L utilizzo di un linguaggio standard di comunicazione, facilita l interazione tra gli stessi agenti e tra agenti ed ambiente. Il linguaggio adottato da FIPA va sotto il nome di FIPA-ACL (FIPA-Agent Communication Language). Un messaggio FIPA-ACL contiene un insieme di parametri variabile secondo il tipo di comunicazione e la situazione. L unico parametro obbligatorio è quello che identifica il tipo d atto comunicativo (performative) sebbene sia auspicabile che la maggior parte dei messaggi contengano anche il mittente (sender), il ricevente (receiver) e l oggetto (content). Se l agente non è in grado di capire o processare uno o più parametri può rispondere con un messaggio indicante l impossibilità di comprensione (not-understood). L utente è libero di estendere il linguaggio specificando parametri più adatti ai propri fini sebbene sia consigliato utilizzare quelli definiti da FIPA, descritti in tabella 1.1 [21]. Per poter comunicare gli agenti hanno bisogno, oltre ad uno standard condiviso sulla forma dei messaggi, anche di un protocollo, ovvero un insieme di regole che definiscano quale sia la successione dei messaggi da attendersi in una conversazione tipica. Protocollo d interazione La comunicazione tra gli agenti spesso segue uno schema predeterminato, per questo FIPA definisce formalmente le modalità con cui deve avvenire lo scambio di messaggi nelle conversazioni: gli agenti, prima di iniziare la comunicazione, possono concordare un protocollo d interazione che determina il tipo di messaggi che è lecito aspettarsi nel corso della trasmissione. FIPA ha definito alcuni protocolli d interazione, come FIPA-Request, FIPA- Propose, FIPA-Request When, FIPA-Query, FIPA-Contract Net, FIPA-Iterated Contract Net. Mentre i primi protocolli identificano tipologie d interazione ele-

32 26 1. Sistemi Multi-Agente e Cultura Implicita Parametro Descrizione performative Indica il tipo di atto comunicativo Sender Denota l identità del mittente, vale a dire l AID dell agente. Receiver Denota l identità dei riceventi del messaggio. Content Specifica l oggetto del messaggio che deve essere interpretato dal ricevente. reply-to Specifica che i messaggi che seguiranno nella conversazione devono essere inviati all agente specificato da questo parametro invece che al mittente. Language Denota il tipo di linguaggio da utilizzare per comprendere il contenuto. Encoding Indica il tipo di codifica utilizzato per il parametro content. Ontology Denota l ontologia da utilizzare per comprendere i simboli contenuti nel parametro content. Protocol Denota il protocollo d interazione che l agente mittente utilizza nel messaggio ACL (questo argomento sarà approfondito nel prossimo paragrafo). conversation-id Introduce un identificatore di conversazione per riconoscere la sequenza d atti comunicativi in corso. reply-with Denota il formato da utilizzare nel messaggio di risposta. In-reply-to Denota un espressione che fa riferimento ad un azione precedente alla quale il presente messaggio è la risposta. reply-by Rappresenta un limite sul tempo di risposta. Tabella 1.1: Parametri standard in un messaggio di tipo FIPA-ACL.

33 1.4. Tecnologie e Standard per Sistemi Multi-Agente 27 mentari tra agenti, i protocolli FIPA-Contract Net e FIPA-Iterated Contract Net permettono di avere una comunicazione più articolata. In figura 1.11 è schematizzato il funzionamento del protocollo FIPA-Query. Figura 1.11: Protocollo di interazione FIPA-Query. Il protocollo è utilizzato per lo scambio d informazioni tra agenti. Un agente invia il messaggio query ad un altro agente il quale può rispondere in quattro modi diversi: not-understood se la richiesta non è stata compresa, failure in caso di errori di comunicazione, refuse se l agente non possiede le informazioni richieste e inform se l agente accetta la query e procede all invio delle informazioni Jade Jade [34] è un framework software open-source completamente implementato in Java e distribuito da TILAB sotto licenza LGPL grazie al quale viene semplificata l implementazione di sistemi multi-agente. Esso si propone come middle-ware compatibile con le specifiche FIPA e fornisce dei tool grafici di supporto alle fasi di debugging e sviluppo. Il sistema ad agenti può coinvolgere diverse macchine nella rete che non necessariamente devono condividere lo stesso sistema operativo e la configurazione può essere modificata a run-time tramite interfaccia grafica. Architettura della piattaforma Jade La piattaforma ad agenti JADE, essendo conforme alle specifiche FIPA, contiene tutti i componenti che caratterizzano le specifiche e la comunicazione tra gli agenti avviene tramite scambio di messaggi codificati in linguaggio ACL. Ciascun host su cui la piattaforma ad agenti è in esecuzione utilizza una singo-

34 28 1. Sistemi Multi-Agente e Cultura Implicita la Java Virtual Machine (JVM), la quale rappresenta l ambiente d esecuzione di più agenti anche in concorrenza. Ciascuna istanza di esecuzione dell ambiente Jade è chiamata Container e può contenere un numero arbitrario di agenti. La Piattaforma è rappresentata dall insieme di container attivi, tra i quali il Main Container rappresenta quello principale, sempre attivo, al quale tutti gli altri devono registrarsi. Se un altro Main Container viene eseguito da qualche parte nella rete esso costituisce una diversa piattaforma. Il compito del Container è quello di smistare i messaggi ACL in arrivo, instradandoli in base al destinatario e inserendoli nella coda privata dell agente interessato. A livello implementativo, ciascun Container rappresenta un oggetto server RMI (Remote Server Invocation). In Figura 1.12 è rappresentato un esempio di scenario in cui due piattaforme Jade sono in esecuzione. Gli agenti sono identificati da un nome unico e possono comunicare tra loro in maniera trasparente, indipendentemente da dove essi si trovino (anche su piattaforme diverse). Un Main Container si differenzia da un normale Container non solo per il fatto che rimane sempre attivo ma anche perchè contiene due particolari tipi di agente che vengono eseguiti in modo automatico e contemporaneamente ad esso: L Agent Management Service (AMS) che assume il ruolo di supervisione assicurandosi che ogni agente abbia un unico identificatore. Esso inoltre regola la creazione e soppressione degli agenti all interno della piattaforma. Il Directory Facilitator (DF) provvede al servizio detto di pagine gialle, mantenendo il registro di tutti i servizi offerti dagli agenti iscritti alla piattaforma. Architettura interna dell agente Jade Dal punto di vista puramente implementativo un agente è rappresentato tramite un istanza della classe Agent. Questo gli permette di godere di una serie di caratteristiche che facilitano i meccanismi di registrazione, configurazione e comunicazione. Il modello computazionale dell agente è multi-tasking, dove ciascun task (spesso riferito come comportamento), è eseguito in concorrenza. Ciascuna funzionalità o servizio svolto dall agente è implementato come uno o più comportamenti (behaviour), gestiti in maniera trasparente per lo sviluppatore grazie allo scheduler presente all interno di ogni agente. Conformemente alle specifiche FIPA, i comportamenti determinano una serie di stati in cui può trovarsi l agente Jade (vedi figura 1.13).

35 1.4. Tecnologie e Standard per Sistemi Multi-Agente 29 Figura 1.12: Un esempio di scenario con due piattaforme Jade in esecuzione. Questi stati sono: INITIATED: l agente è stato creato, ma non risulta ancora registrato all AMS, quindi non possiede un ID e non può comunicare. ACTIVE: l agente è stato registrato all AMS, ha un nome unico e un indirizzo e quindi può accedere a tutte le funzionalità della piattaforma Jade. SUSPENDED: l esecuzione dell agente è stata sospesa. Il suo thread interno è in attesa e nessuno comportamento è attualmente in esecuzione. WAITING: l agente è bloccato e in attesa di qualche evento. Il suo Thread interno si trova in modalità sleeping e viene risvegliato quando una certa condizione avviene, come ad esempio l arrivo di un messaggio.

36 30 1. Sistemi Multi-Agente e Cultura Implicita Figura 1.13: Ciclo di vita di un agente Jade [19]. DELETED: l agente è stato cancellato e quindi non è più accessibile. Il suo Thread interno ha terminato l esecuzione e l agente non risulta più registrato nell AMS. TRANSIT: un agente entra in questo stato nell istante prima di migrare verso una nuova piattaforma. COPY: questo stato interno è utilizzato da Jade per clonare gli agenti. GONE: questo stato interno è utilizzato da Jade nel momento in cui agenti mobili migrano verso una nuova locazione e si trovano in uno stato stabile. Un agente può attivare i propri comportamenti soltanto quando si trova nello stato attivo. Le tecnologie discusse nel seguente capitolo sono state combinate con lo standard ISO MPEG-7 (trattato nel paragrafo 2.1) allo scopo di costituire un infrastruttura di supporto all utente nella gestione e condivisione di risorse multimediali, la cui architettura logica sarà discusso nel prossimo capitolo.

37 2 Sistema per la gestione e condivisione di risorse multimediali Il recupero e filtraggio d informazioni rappresenta uno tra i settori di ricerca più attivi a causa della crescente disponibilità di dati soprattutto di tipo multimediale e la crescente difficoltà nel gestirli, spesso dovuta ad una strutturazione eterogenea e soggettiva degli stessi. Inoltre la forte espansione su larga scala di nuove pratiche applicazioni quali i motori di ricerca su Web, i sistemi per il broadcast d informazioni e i sistemi di knowledge management, hanno favorito lo sviluppo di strumenti sempre più efficienti per la descrizione, l identificazione e il recupero di informazioni multimediali. Il valore che viene ad assumere un informazione disponibile on-line è tanto più grande quanto più facile è il suo reperimento, accesso e gestione. Gli attuali motori di ricerca basano la loro esplorazione esclusivamente sulla parte testuale di un documento, tralasciando ogni significato semantico dell informazione multimediale (se non per il nome del file che contiene tale informazione). Attualmente, sistemi efficienti per la ricerca di informazione di tipo multimediale, basati sul contenuto semantico, non esistono oppure sono poco conosciuti perchè solo in fase sperimentale. I fatti dimostrano altresì che le ricerche-utente sono basate sul contenuto e sulla sua semantica più che sul media stesso; l utente è quindi costretto ad adattarsi al sistema e tradurre le sue richieste di alto livello in altre di più basso livello comprensibili dal sistema. Viene a mancare, in ultima analisi, quello che è chiamato quality access to content, che per essere realizzato necessita di soluzioni innovative nell identificazione dei contenuti, e tecniche accurate e personalizzate di filtraggio, ricerca, reperimento e gestione. Si rende quindi evidente la necessità di implementare forme di rappresentazione dei dati che permettano una maggiore descrizione dei contenuti e non soltanto la semplice memorizzazione e compressione. Inoltre l utilizzo di tecniche avanzate per la descrizione semantica dell informazione assume significato solo se accompagnato da un architettura intelligente a supporto dell utente in fase di

38 32 2. Sistema per la gestione e condivisione di risorse multimediali creazione, accesso e gestione di tale informazione. In questo lavoro di tesi, si è deciso di affrontare il problema sviluppando un sistema d aiuto all utente nella creazione, gestione e condivisione dell informazione, basato su uno standard flessibile per la descrizione strutturale e semantica dei contenuti ma anche su tecniche di supporto all utente per il recupero delle informazioni. Il sistema permette lo scambio di risorse multimediali rendendo invisibile all utente l eterogeneità e la complessità delle stesse e adattandosi alle preferenze e al comportamento dell utente. La capacità del sistema di apprendere dall esperienza è basata sul paradigma della Cultura Implicita, discussa nel paragrafo 1.3.2, la quale permette anche a nuovi utenti di assimilare velocemente una conoscenza ottimale dell ambiente in cui si muovono grazie a meccanismi di suggerimento forniti in modo trasparente da altri utenti. Il sistema fornisce una serie di strumenti che coinvolgono l intero tempo di vita dell informazione, dalla creazione, supportata da un authoring tool, alla pubblicazione su un server dedicato, alla diffusione verso l utente finale. La struttura del sistema è stata pensata in un ottica di utilizzo aziendale dove la produzione, l uso e la gestione dell informazione può assumere significati diversi a seconda del ruolo che l attore svolge nel sistema. Nonostante ciò il sistema può essere facilmente applicato anche in contesti più informali dove lo stesso attore può ad esempio produrre l informazione e allo stesso tempo condividerla con altri utenti. Il sistema propone delle soluzioni innovative sia per quanto riguarda la produzione dei contenuti che per quanto riguarda il problema dell accesso intelligente agli stessi. Le tecnologie alla base, già introdotte nel capitolo precedente, come il modello d interazione ad agenti e il framework di cultura implicita, sono state combinate con uno standard per la descrizione sia strutturale che semantica dell informazione così da ottenere uno strumento estremamente flessibile e adattabile a ogni tipo di dato. Questo standard, chiamato MPEG-7, o Multimedia Content Description Interface sarà trattato nella prima parte del capitolo, quindi sarà descritta l architettura logica del sistema soffermandosi sulle parti principali che la compongono. 2.1 ISO Standard MPEG-7 Il consorzio MPEG (Movie Picture Expert Group [43]), da sempre protagonista nello sviluppo di standard multimediali di riferimento per la rappresentazione dei contenuti, nel Luglio 1996 cominciò lo sviluppo di questo standard generalmente chiamato MPEG-7 ma spesso riferito anche come Multimedia Content Description Interface.

39 2.1. ISO Standard MPEG Obbiettivi L idea alla base di MPEG-7 consiste nell utilizzo di una serie di strumenti per la descrizione, gestione e interpretazione di dati di tipo multimediale, indipendentemente dalla particolare tecnologia di memorizzazione e trasmissione utilizzata. Questo concetto non rappresenta una novità in questo campo, ma prende spunto da sistemi proprietari già in uso, come: SMPTE Metadata Dictionary [54] The Dublin Core Metadata [15] EBU P/Meta [16] TV Anytime [56] and Material exchange Format (MXF) [38]. In tale variegato contesto, fatto di soluzioni eterogenee e incompatibili fra loro, MPEG-7 si pone come standard di riferimento compatibile con le soluzioni già esistenti, al fine di garantire una meno traumatica migrazione verso quello che potrebbe essere lo standard del futuro in tale ambito. Come da tradizione per ogni standard MPEG, MPEG-7 non si focalizza su un particolare dominio applicativo, ma rappresenta una soluzione portabile e applicabile ad ogni piattaforma e software, senza particolari predilezioni Concetti chiave dello standard Per comprendere meglio questa tecnologia, è opportuno chiarire i principi alla base dello standard: Dominio applicativo: MPEG-7 può essere associato a qualsiasi applicazione o sistema che sia real-time, on-line, off-line, streamed o di memorizzazione dati. Relazione col contenuto: MPEG-7 permette la creazione di descrittori che possono essere o in formato testuale come entità stand-alone, per fornire ad esempio solo un sommario del contenuto, o in formato binario compresi nel file multimediale associato per sistemi di broadcast, oppure collegati con una o più versioni dello stesso disponibili in rete. Tipi di dato: MPEG-7 considera una grande varietà di tipi di dato come voce, audio, video, immagini, grafica, modelli 3D, testo ecc. 1 Specifying the minimum for maximum usability.

40 34 2. Sistema per la gestione e condivisione di risorse multimediali Orientato agli oggetti: MPEG-7 permette una descrizione del contenuto ad albero, orientata agli oggetti; il contenuto può essere descritto cioè come composizione di oggetti multimediali ed è possibile accedere in modo indipendente ad uno specifico nodo. Indipendente dal formato: MPEG-7 può essere usato indipendentemente dal formato usato per rappresentare il contenuto, sia esso analogico, digitale, compresso, NTSC, PAL, MPEG-1, MPEG-2, MPEG-4 o quant altro. C è comunque una speciale relazione con MPEG-4, in particolare con XMT (Extensible MPEG-4 Textual Format), un framework per rappresentare la struttura di una scena MPEG-4 utilizzando una sintassi testuale basata su XML. Estensibilità: MPEG-7 può essere adattato a qualsiasi particolare dominio applicativo grazie alla presenza del Data Definition Language (DDL), un linguaggio basato su XML che ne permette l estensione. Fine ultimo di MPEG-7 è quindi, in uno scenario futuro che vedrà sempre più presente Internet e il web nella vita di tutti i giorni, far sì che i contenuti multimediali siano esplorabili così come lo sono oggi i documenti di tipo testuale Descrizione dello Standard Lo standard MPEG-7 è suddiviso in otto parti fondamentali che possono essere usate in modo indipendente l una dall altra e in combinazione con tecnologie proprietarie [41]: Parte 1 - System: specifica i tool da utilizzare per preparare le descrizioni MPEG-7, il formato, il trasporto, la memorizzazione, la sincronizzazione tra contenuto e descrizione e la protezione della proprietà intellettuale [28]. Parte 2 - Description Definition Language: contiene una specifica del linguaggio utilizzato per definire struttura e contenuto dei documenti MPEG-7. Si tratta di uno Schema Language (basato su XML) per rappresentare nuovi Descrittori (D) e Schemi di Descrizione (DS) sintatticamente e strutturalmente conformi allo standard. Un Descrittore, chiamato anche attributo, rappresenta in generale una caratteristica distintiva di un oggetto definendone la sintassi e la semantica. Un descrittore può essere costituito ad esempio da una sequenza di stringhe per rappresentare un titolo. Uno Schema di Descrizione specifica la struttura e la semantica delle relazioni tra Descrittori oppure tra altri Schemi

41 2.1. ISO Standard MPEG-7 35 di Descrizione. Un schema di Descrizione può caratterizzare ad esempio un film o un immagine. DDL fornisce inoltre le regole sintattiche necessarie per estendere e raffinare schemi di descrizione e descrittori già esistenti per adattarli ad una specifica applicazione [29]. Parte 3 - Visual: specifica dei descrittori e degli schemi di descrizione che si occupano esclusivamente d informazioni visuali [30] Parte 4 - Audio: specifica dei descrittori e degli schemi di descrizione che si occupano esclusivamente d informazioni audio [31] Parte 5 - Descrizione di Schemi Multimediali (MDS): Specifica dei descrittori e degli schemi di descrizione che si occupano di caratterizzare materiale multimediale generico [32]. Parte 6 - Software di Riferimento: Include il codice sorgente dei tool sviluppati dal gruppo MPEG conformi allo standard MPEG-7 (il software a corredo viene spesso riferito come XM - experimentation Model). Parte 7 - Conformance Testing: definisce le procedure per testare la conformità delle descrizioni allo standard MPEG-7 [42]. Parte 8 - Estrazioni e utilizzo delle descrizioni MPEG-7: fornisce informazioni sull uso d alcuni tool di descrizione appartenenti al Reference Software [33]. Questa parte viene talvolta riferita come Technical Report e non come standard. Il nucleo della tecnologia MPEG-7 è rappresentato dalle prime cinque parti dello standard, mentre le parti 6, 7 ed 8 sono considerate parti di supporto. Problema fondamentale nello scenario appena descritto, risulta essere la modalità di descrizione del contenuto. Una descrizione di tipo informativo è intuitivamente rappresentabile con diversi livelli di granularità, utilizzando diverse caratteristiche secondo il dominio applicativo. Per un contenuto di tipo visivo come un filmato o un immagine si può spaziare da caratteristiche di tipo strutturale, nelle quali si considereranno forme, dimensioni e colori ad altre di più alto livello, che riguardano aspetti semantici, come la definizione dei soggetti presenti e le loro interazioni (ad esempio: scena nella quale vi è una persona che sta parlando sulla sinistra, una pallina rossa che sta rimbalzando sulla destra, con il rumore di sottofondo di un treno). Bisogna inoltre tenere in considerazione che le caratteristiche strutturali di un contenuto possono essere ricavate in maniera automatizzata tramite per esempio dei software di image-processing mentre una descrizione a livello semantico è più difficili da ottenere senza l intervento umano.

42 36 2. Sistema per la gestione e condivisione di risorse multimediali Per quanto riguarda i sistemi per il reperimento d informazioni, lo standard prevede che la query utilizzata per la ricerca non debba essere necessariamente di tipo testuale: in altre parole è possibile cercare materiale visivo utilizzando non solo altro materiale visivo, ma anche musica, parlato ecc. E compito del motore di ricerca effettuare le necessarie conversioni e fornire solo dei contenuti compatibili con la query in ingresso Elementi dello standard in dettaglio Lo standard prevede che le descrizioni MPEG-7 possano assumere forma testuale (per mezzo del Data Definition Language), binaria (tramite BiM ) o un mix dei due. Esiste comunque un mapping bidirezionale per poter convertire un formato nell altro a seconda del tipo di applicazione di cui si fa uso. Come anticipato, il formato testuale si basa sullo standard W3C, XML e presenta la consueta struttura ad albero (Description Tree). Secondo il tipo di contenuto e dominio applicativo possono essere utilizzati uno o più schemi di descrizione, con la possibilità di utilizzare i descrittori forniti dallo standard oppure di definirne di nuovi: quindi, uno o più schemi MPEG-7 definiscono una classe di possibili documenti MPEG-7 (istanze). In figura 2.1 si nota come gli elementi dello standard siano in relazione fra loro. I Descrittori e gli Schemi di Descrizione appartenenti allo standard sono logicamente divisi in 5 grandi ambiti: Creation Information: prevede informazioni sulla creazione del contenuto ed eventualmente sul materiale correlato: titolo, annotazioni, informazioni su chi l ha creato, dove e quando. Il contenuto può anche essere classificato in categorie come soggetto, genere, linguaggio ecc. Media Information: riguarda informazioni sul formato del contenuto, compressione, dimensione e supporta più istanze dello stesso differenziate, per esempio, per risoluzione, codifica ecc. Usage Information: descrive le modalità d utilizzo delle informazioni correlate quali copyright e termini di pagamenti. Questo tipo d informazione è generalmente dinamico e può quindi cambiare durante il ciclo di vita del contenuto. Structural Aspects: descrive la struttura spazio-temporale del contenuto audio-visuale: elenca caratteristiche quali colore, texture, forme, movimento ecc.

43 2.1. ISO Standard MPEG-7 37 Figura 2.1: Relazione tra le entità coinvolte nello standard MPEG-7. Semantic Aspects: descrive il contenuto audio-visuale dal punto di vista di nozioni concettuali del mondo reale come oggetti presenti, eventi in corso e relazioni. Questi 5 differenti aspetti di una descrizione, qui presentati come entità separate, non sono in realtà da considerarsi disgiunti, ma sono correlati fra loro, e in alcune parti, anche inclusi l uno nell altro. Nelle applicazioni reali non è un obbligo includere tutti e cinque questi aspetti, ma si ha libertà di porre più enfasi su alcuni tralasciandone altri Classification Schema Lo standard MPEG-7 prevede l utilizzo di particolari tipi di documento chiamati Classification Schema, che permettono allo sviluppatore di definire un vocabolario specifico per la descrizione di un dominio come insieme di termini. Una descrizione MPEG-7 può far riferimento a dei termini definiti in un Classification Schema esterno offrendo così un maggior grado di flessibilità sui contenuti. Questo tipo di documento viene stilato quando si ha una

44 38 2. Sistema per la gestione e condivisione di risorse multimediali perfetta conoscenza del dominio applicativo in modo da poter utilizzare per la descrizione termini e sinonimi adeguati. I termini possono far riferimento a lingue diverse ed essere raggruppati in gerarchie e relazioni complesse che permettono ad esempio di definire se una determinata parola ha un significato più vicino ad un termine piuttosto che un altro. Un esempio di funzionamento del Classification Schema relativo al sistema implementato, sarà descritto nel paragrafo Architettura del sistema Da un punto di vista logico, il sistema implementato è costituita da tre componenti principali. Come mostrato in figura 2.2, questi sono il Knowledge Engineer, il Content Manager e lo User Client. Il Knowledge Engineer è formato da: Un Authoring Tool che permette di creare in modo automatizzato la descrizione in formato ISO MPEG-7, di oggetti tridimensionali complessi e di esportarli eventualmente in un formato tridimensionale portabile e flessibile. Il descrittore MPEG-7 creato tramite l Authoring Tool contiene non soltanto la descrizione dell oggetto ma anche di tutti i sotto-oggetti che lo compongono. Un applicazione Client (KE Client) che permette l upload, il download e la gestione delle informazioni presenti nel Content Storage System in modo remoto utilizzando una connessione sicura. Secondo il dominio di applicazione del sistema, l utilizzo di tale strumento può essere riservato all amministratore del sistema, al designer oppure essere usufruibile da tutti gli utenti appartenenti alla piattaforma. Il Content Manager è il componente principale dell intero sistema. Esso è composto da: Content Storage System costituito da un server di supporto al KE Client e da tre database utilizzati per la gestione dei dati. Il server di supporto, indicato con Content Manager Server, si occupa di mantenere una connessione protetta con il KE Client e di gestire l acceso ai database contenenti le informazioni per il login degli utenti, i file multimediali e i descrittori MPEG-7. Host Server fornisce il supporto agli utenti nelle attività di ricerca delle informazioni. Esso è costituito da un Server Web che assiste

45 2.2. Architettura del sistema 39 Figura 2.2: Architettura logica del sistema implementato.

46 40 2. Sistema per la gestione e condivisione di risorse multimediali l utente nella navigazione del portale, un Servlet Engine per l esecuzione di codice Java su lato Server e un sistema multi-agente con supporto alla Cultura Implicita per la ricerca d informazioni nel Content Storage System e tramite motore di ricerca. User Client rappresenta il componente che permette agli utenti di accedere ai servizi offerti dal sistema. Fornisce supporto nell attività di visualizzazione delle informazioni provenienti dal Web tramite browser dotato di plug-in specifici per la visualizzazione di informazioni in formato particolare (come gli oggetti 3D). 2.3 Knowledge Engineer Il Knowledge Engineer copre le due fasi iniziali nel ciclo di vita dell informazione: la fase di creazione dedicata alla descrizione dei contenuti tramite MPEG-7 e la fase di condivisione, basata su applicazione Client, che ha lo scopo di inviare l informazione ad un server remoto, così da renderla disponibile e accessibile da parte degli utenti iscritti al sistema Creazione dell informazione La difficoltà maggiore nell utilizzo di MPEG-7 per la descrizione strutturale e semantica di file multimediali, risiede nella mancanza di un software d aiuto all utente nella creazione di tale descrizione. Di conseguenza si ha la necessità di doverla creare manualmente tramite un editor di testo, seguendo gli schemi di riferimento dello standard MPEG-7, di cui un estratto è rappresentato in figura 2.3. Si è scelto di utilizzare questo schema in quanto si presta bene alla descrizione sia strutturale che semantica di immagini ed oggetti 3D generici. Per la descrizione di modelli tridimensionali complessi, costituiti da diversi sotto-oggetti, verrà utilizzato uno schema più avanzato, in grado di rispecchiare l intero struttura del modello (trattato nel paragrafo 3.3.1). Ciascun descrittore rappresentato con linea continua è obbligatorio, mentre i descrittori identificati con una linea tratteggiata sono facoltativi. Il simbolo ad interruttore posto a fianco del descrittore indica che può essere utilizzato solo uno tra i descrittori elencati alla sua destra, per esempio Definition può avere solo un figlio a scelta tra FreeTextAnnotation, StructuredAnnotation, DependencyStructure e KeywordAnnotation. Ciascun descrittore è accompagnato da un indicazione di quante possibili istanze possono coesistere dello stesso, per esempio Semantics può avere come figlio nessuno oppure infiniti oggetti di tipo MediaOccurence.

47 2.3. Knowledge Engineer 41 Figura 2.3: Parte dei descrittori che caratterizzano la struttura di un documento MPEG-7 utilizzato per la descrizione di immagini ed oggetti 3D generici. In figura 2.4 è rappresentata una parte di una descrizione MPEG-7 associata all immagine di un auto. Lo Schema XML incluso nell intestazione (Mpeg xsd) permette l utilizzo dei descrittori previsti dallo standard MPEG-7 e degli schemi di descrizione specifici per il particolare media trattato. Il significato dei vari descrittori è riassunto di seguito: Confidence: da un indicazione del livello di riservatezza delle informazioni fornite. FreeTextAnnotation: fornisce una breve descrizione semantica relativa all oggetto associato. Creator e Creation Location: forniscono una serie di informazioni relative al creatore del contenuto quali indirizzo, sito web, occupazione e luogo di creazione. Instrument: indica lo strumento utilizzato per creare il contenuto ed eventuali programmi per la manipolazione.

48 42 2. Sistema per la gestione e condivisione di risorse multimediali Figura 2.4: Parte di documento MPEG-7 associato ad un immagine.

49 2.3. Knowledge Engineer 43 KeywordAnnotation: rappresenta un insieme di parole chiave associate al contenuto, utili soprattutto in fase di ricerca. MediaProfile: provvede una serie d informazioni strutturali sul contenuto come la dimensione, il formato, la codifica utilizzata ecc. Dello stesso contenuto possono esserci riferimenti a più versioni con formato o risoluzioni differenti. MediaUri: fornisce l indirizzo locale oppure remoto del contenuto associato alla descrizione. SemanticBase: fornisce una serie di informazioni aggiuntive associate al contenuto: per esempio nel caso di un automobile, luogo di produzione, anno, designer, linea, categoria ecc. L aspetto più scomodo nell utilizzo di MPEG-7 risiede nella necessità di dover creare manualmente la descrizione dei contenuti, vista l impossibilità di creare una descrizione sensata a livello semantico tramite una procedura automatica. Per tipi di dato come le immagini si è scelto di utilizzare questo approccio nonostante si trattasse di un attività onerosa in termini di tempo, mentre per i modelli tridimensionali si e tentata un altra strada: al momento della loro creazione tramite modellatore 3D, il designer immette nel modello diverse informazioni che possono essere sfruttate per la creazione del relativo descrittore. Nella fase di design di un oggetto tridimensionale sono normalmente definiti dei gruppi d oggetti che costituiscono parti rilevanti del modello, cioè layer (per esempio nel caso di un automobile possono rappresentare una ruota, una portiera ecc.) associati ad una breve annotazione. Si è quindi deciso di costruire un Authoring Tool specifico per un determinato modellatore 3D che fosse in grado di sfruttare appieno queste informazioni per creare in maniera automatica a partire dal modello, un documento MPEG-7 contenente non solo i dati sul modello, ma anche i riferimenti a tutti i sotto-oggetti che lo costituiscono. In figura 2.5 è rappresentata la parte di un documento MPEG-7 creato tramite la procedura automatica descritta poc anzi. Il documento fa riferimento al modello tridimensionale di un automobile Condivisione dell informazione I documenti MPEG-7 prodotti tramite editor o Authoring Tool possono essere trasferiti assieme ai file di contenuto associati, verso il Content Manager Server. Il trasferimento avviene su connessione protetta ed è attivato tramite l interfaccia grafica fornita con il KE Client. L operazione ha lo scopo di

50 44 2. Sistema per la gestione e condivisione di risorse multimediali Figura 2.5: Parte di documento MPEG-7 associato al modello tridimensionale di un automobile. rendere le informazioni accessibili e disponibili a tutti gli utenti iscritti al sistema. Il KE Client supporta funzionalità di upload, download e visualizzazione remota dei contenuti in modalità multi-tasking 2 e multi-utente 3. Per garantire un alto livello di sicurezza, prima del trasferimento dei dati viene eseguito un processo di autenticazione che permette l attivazione di una connessione sicura tra Client e Server. La procedura è basata sull uso di certificati digitali per la creazione della connessione SSL e di login e password per verificare l identità dell utente. I dati forniti dall utente sono confrontati da parte server con quelli contenuti nel database degli account: se i dati forniti sono corretti può essere stabilita la connessione. Il Client è predisposto in modo da conoscere lo stato delle operazioni ed 2 Permette l esecuzione di più operazioni allo stesso tempo, per esempio upload multipli. 3 Permette a più utenti di accedere contemporaneamente al server senza interferenze.

51 2.4. Content Manager 45 eventuali malfunzionamenti da parte server: per esempio l utente dopo aver interagito col server è in grado di sapere, se quest ultimo ha ricevuto correttamente le informazioni, se ha incontrato problemi nell inserire i file nei database o se il file ricevuto era corrotto. I dettagli implementativi relativi al funzionamento del KE Client saranno forniti nel paragrafo Content Manager Il Content Manager rappresenta la parte più importante dell intera architettura in quanto comprende un insieme di tecnologie, responsabili di soddisfare le richieste provenienti dal KE Client e dallo User Client. Esso è costituito da due componenti principali, il Content Manager System e l Host Server che assolvono compiti diversi all interno del sistema. Il primo è costituito da un insieme di strumenti dedicati alla memorizzazione e indicizzazione dei contenuti su database e la gestione degli stessi da parte del Content Manager Server, mentre il secondo fornisce il supporto allo User Client nell attività di ricerca e restituzione delle informazioni Content Storage System Il Content Manager Server è costituito da un applicazione server in grado di gestire connessioni e operazioni multiple col client. Esso interpreta le richieste in arrivo e cerca di soddisfarle interrogando, se necessario, i database, che svolgono all interno del sistema, un compito specifico: Relational DB: Mantiene le informazioni di accesso di tutti gli utenti che possono accedere al sistema. I dati di login comprendono nome utente, password e gruppo di appartenenza. Content Storage: Conserva tutti i documenti multimediali o testuali messi a disposizione dagli utenti del sistema per la condivisione. Può essere costituito semplicemente da un file-system su server oppure da una struttura dati più avanzata. XML DB: Si tratta di una struttura dati pensata per la memorizzazione di documenti di tipo XML che ben si adatta anche allo standard MPEG-7. Essa contiene tutti i documenti MPEG-7 che fanno riferimento ai contenuti memorizzati nel Content Storage. Si è scelto questo tipo di struttura dati in quanto risulta particolarmente ottimizzata e performante nella fase di ricerca, in particolare nell esecuzione di query su intere

52 46 2. Sistema per la gestione e condivisione di risorse multimediali Collection 4 di documenti. L operazione di ricerca da parte dello User Client è eseguita per mezzo del Personal Agent direttamente su questa struttura dati senza coinvolgere in alcun modo i contenuti associati. Ciò permette di rendere la fase di ricerca particolarmente rapida. La struttura dati XML DB comprende anche altri tipi di documenti previsti dallo standard MPEG-7 chiamati Classification Schema (CS): essi servono per definire un vocabolario specifico per la descrizione di un dominio come insieme di termini (vedi paragrafo 2.1.5). Una descrizione MPEG-7 può quindi far riferimento a dei termini definiti in un Classification Schema esterno offrendo così un maggior grado di flessibilità sui contenuti. Per comprenderne l utilità nel sistema sviluppato si può far riferimento all esempio in figura 2.6 dove la descrizione MPEG-7 è relativa all immagine di un auto di categoria station-wagon. Figura 2.6: Esempio di riferimento ad un Classification Schema esterno. 4 Il termine Collection viene utilizzato per indicare un insieme di documenti XML.

53 2.4. Content Manager 47 La ricerca sul sistema è eseguita da parte dei Personal Agent associati a ciascun utente: essi sono stati istruiti ad effettuare inizialmente una ricerca nei CS per individuare dei riferimenti alla chiave di ricerca utilizzata. Nel caso rappresentato in figura 2.6, una ricerca da parte dell utente con parola chiave estate car, familiare oppure break sarebbe tradotta dal sistema come una ricerca nelle descrizioni MPEG-7, di riferimenti di tipo CarClassificationSchemaCS:stationWagon. Ciò rende il Personal Agent in grado di comprendere un maggior numero di termini e sinonimi, e di effettuare ricerche più accurate. La comunicazione client-server è preceduta da una fase di autenticazione nella quale è verificata l attendibilità dei certificati digitali in possesso e dei dati di login forniti da parte client. Dopo aver superato il processo di autenticazione, e stabilito una connessione protetta, il server rimane in attesa di richieste da parte client. Le operazioni che il server è in grado di soddisfare sono di tre tipi: upload, download e visualizzazione remota dei file di contenuto presenti nel Content Storage. Nel processo di upload il client invia al server un pacchetto compresso contenente un descrittore MPEG-7 accompagnato da uno o più file di contenuto correlati; il server controlla l integrità del pacchetto ricevuto, estrae il file MPEG-7 che viene inserito nel database XML e i file di contenuto che vengono invece collocati nel Content Storage. Il documento MPEG-7 prima di essere inserito nel database, deve essere sottoposto ad un aggiornamento dei tag che contengono i riferimenti ai documenti correlati: tali riferimenti devono rispecchiare la nuova locazione dei contenuti che sono stati spostati dal client al Content Storage sul server (vedi figura 2.7). Figura 2.7: Esempio di aggiornamento di un tag MediaURI nel file MPEG-7. Tale tag indica la locazione del file multimediale correlato che nel caso illustrato è un immagine. I file di contenuto ricevuti dal server vengono suddivisi per data e memorizzati in una directory (locale o remota) accessibile dal server web. In questo

54 48 2. Sistema per la gestione e condivisione di risorse multimediali modo il client può inviare una richiesta di visualizzazione dei file inviati in una data specifica: i file che soddisfano la query sono visualizzati sull interfaccia grafica del client, dalla quale possono essere selezionati quelli di proprio interesse e scaricati. E possibile gestire il funzionamento del server e intervenire su tutti i parametri di configurazione tramite interfaccia grafica. Ulteriori dettagli relativi al funzionamento del Content Storage System saranno forniti nel paragrafo Host Server L Host Server fornisce il supporto agli utenti nelle attività di ricerca delle informazioni. Esso è costituito da un Server Web che si occupa di assistere l utente nella navigazione del portale, da un Servlet Engine per l esecuzione di codice su lato server e da un sistema multi-agente per la ricerca delle informazioni. L idea di base è che l utente possa effettuare sul sistema delle ricerche tramite una o più parole chiave. Il sistema, a fronte della richiesta dell utente, sfrutta il modello d interazione ad agenti basato sul framework di Cultura Implicita (SICS) per fornire una risposta adeguata, basata sul comportamento assunto in passato dall utente. Per il sistema ad agenti si è deciso di continuare lo sviluppo di un sistema simile già realizzato per un precedente lavoro di tesi [64] e di espanderne le funzionalità per il supporto non solo di informazioni testuali bensì di ogni tipo di informazione, in particolare quella multimediale, grazie all utilizzo dello standard MPEG-7. L architettura generale del sistema multi-agente è riportata in figura 2.8. Ciascun agente che costituisce il sistema assume un ruolo ben preciso all interno della comunità: solo un lavoro cooperativo da parte dell intero gruppo permette un funzionamento ottimale del sistema. I ruoli che un agente all interno del gruppo può assumere sono: Personal Agent: rappresenta l agente personale dell utente che fornisce l adeguata assistenza nelle fasi di ricerca delle informazioni. Esso svolge la funzione di tramite tra l utente e il sistema, ma è anche in grado di interagire con altri agenti per favorire la condivisione d informazioni. Directory Facilitator: rappresenta l agente di riferimento per conoscere i servizi offerti da tutti gli agenti iscritti al sistema. Agent Management System: svolge la funzione di supervisore del sistema monitorando tutte le attività che avvengono in esso, in particolare la creazione, sospensione, riattivazione e terminazione degli agenti.

55 2.4. Content Manager 49 Figura 2.8: Architettura generale del sistema multi-agente. Directory Facilitator Nel sistema sviluppato è presente un Directory Facilitator (DF) in accordo con le specifiche FIPA. Ciascun agente deve registrare i servizi offerti nel DF così da renderli disponibili pubblicamente agli altri agenti. Questo servizio svolto dal DF e spesso riferito come servizio di pagine gialle è utile soprattutto nel caso in cui i membri della piattaforma hanno scarsa conoscenza dell ambiente che li circonda e non sono in grado di scegliere chi contattare per effettuare una determinata operazione: in questo caso è sufficiente rivolgersi al DF il quale suggerisce il nome di un possibile agente da contattare. Il DF consiglia un solo agente per volta quindi a lui spetta il compito di decidere chi proporre. Rendere visibile all intero sistema il servizio offerto non comporta nessun obbligo rispetto alle informazioni fornite. E per questo che il DF non può garantire sulla validità di tali dati nel momento in cui tra tutti gli agenti cha offrono un particolare servizio ne suggerisce uno anziché un altro.

56 50 2. Sistema per la gestione e condivisione di risorse multimediali Agent Management System L Agent Management System (AMS) esercita la funzione di supervisore controllando l accesso, l uso della piattaforma e la creazione, cancellazione e modifica degli agenti. Esso contiene la lista degli agenti appartenenti alla piattaforma, ciascuno dei quali ha un identificatore unico e degli indirizzi a cui può essere contattato. La piattaforma (AP) dal punto di vista software è vista come un sistema composto di uno o più contenitori di agenti, i quali devono appartenere, in ogni istante, ad una e una sola AP con la possibilità, se prevista, di spostarsi da una all altra in caso di necessità. In questo senso l AMS fornisce un servizio di pagine bianche mantenendo un elenco di tutti gli agenti iscritti alla piattaforma. Personal Agent Rappresenta l attore principale all interno del sistema. Ogni utente dispone di un proprio Personal Agent attraverso il quale può accedere ai servizi di gestione e ricerca di informazioni offerti dal sistema. In particolare il Personal Agent è in grado di interagire con gli altri agenti: la ricerca delle informazioni viene arricchita attraverso l uso del proprio SICS e delle osservazioni eseguite in passato sul comportamento non solo dello stesso utente ma anche su quello degli utenti con cui esso ha interagito. In figura 2.9 è rappresentata l architettura generale di un Personal Agent implementato con Jade. Come già ampiamente descritto nel paragrafo un agente Jade è rappresentato da un modello multi-task nel quale l agente è visto come un entità in grado di svolgere più attività contemporaneamente. Ciascuna attività è vista come un oggetto di tipo behaviour e viene innescata alla ricezione di un determinato evento interno od esterno. Le varie attività vengono gestite in maniera trasparente da uno scheduler interno all agente. 2.5 User Client Lo User Client rappresenta l interfaccia che permette all utente di interagire con il sistema multi-agente e ottenere le informazioni di proprio interesse. E costituito da un semplice browser che fornisce supporto nell attività di navigazione delle informazioni provenienti dal Web, dotato di plug-in specifici per la visualizzazione di modelli tridimensionali. L utente accede attraverso Internet al sito relativo al sistema proposto e dopo un identificazione personale accede alla pagina di ricerca. Da qui fornendo una o più parole chiave può avviare il processo di ricerca dei risultati e

57 2.5. User Client 51 Figura 2.9: Architettura interna del Personal Agent. selezionare i contenuti di proprio interesse. Il Personal Agent effettua per l utente l operazione di ricerca appoggiandosi ad Internet, un database MPEG-7 e il SICS. Selezionando i vari risultati proposti, l utente potrà o avviare un processo ftp nel caso il risultato sia un link ad un file o visualizzare l informazione nel caso di link a pagine web o scrivere una nel caso di indirizzo . Un trattamento particolare è riservato agli oggetti di tipo tridimensionale in quanto la ricerca è eseguita non solo sull oggetto stesso ma anche sui sotto-oggetti che lo costituiscono: se ad esempio l utente effettua una ricerca sul sistema utilizzando come parola chiave una parte di un automobile e nel database MPEG-7 esiste un oggetto che fa riferimento a tale parte, allora viene creato in tempo reale a partire dal modello originale, un oggetto 3D che rappresenta la parte in questione. Tale oggetto viene poi inviato all utente che ne ha fatto richiesta ed è visualizzabile su browser provvisto dello specifico plug-in. Questa operazione verrà spiegata più dettagliatamente nel paragrafo 3.5. Consultando i risultati proposti, l utente esprime in modo implicito il proprio grado di soddisfazione che viene elaborato, memorizzato e utilizzato in futuro dal sistema non solo per migliorare le ricerche dello stesso utente ma anche quelle di altri utenti appartenenti alla comunità.

58 52 2. Sistema per la gestione e condivisione di risorse multimediali Ciascuna parte del sistema trattata in questo capitolo solo da un punto di vista concettuale sarà invece ripresa nel capitolo successivo e arricchita di dettagli implementativi. Come caso di studio per testare le capacità del sistema si è scelto di inserirlo in un contesto di design automobilistico in cui i tipi di dato trattati saranno costituiti prevalentemente da immagini, blueprint, rendering, brochure e modelli tridimensionali di automobili.

59 3 Verticalizzazione del Sistema nel Contesto del Design Automobilistico La concorrenza internazionale e la rapida crescita dell economia globale, unita al miglioramento delle comunicazioni e dei trasporti, offrono al consumatore un abbondante scelta di beni e servizi. Se dal punto di vista del consumatore la forte competizione internazionale permette un abbassamento dei prezzi e un miglioramento del prodotto, in un ottica aziendale ciò comporta pressione sul prezzo, riduzione dei tempi di produzione e innovazione continua. Il risultato è che per vincere la crescente concorrenza, le aziende hanno bisogno di qualità ed efficienza nel processo di produzione. Nel settore ingegneristico, come in altri settori, investire nella ricerca di nuove tecnologie e prodotti è fondamentale per il successo e la competitività dell azienda. Questo nuovo scenario sta spingendo le imprese ad ottimizzare non solo il processo produttivo ma anche l acquisizione di nuove conoscenze e competenze cercando in particolare di ottenere il massimo da quelle già in possesso. Per ottenere questo è necessario: Ottimizzare l organizzazione delle informazioni e creare un vocabolario comune all azienda che assicuri la corretta comprensione e interpretazione delle conoscenze disponibili. Identificare un modello appropriato che consenta di strutturare l informazione e facilitarne la rappresentazione. Utilizzare un sistema facile e veloce che permetta la condivisione e il recupero dell informazione sia tra membri dello stesso team che tra team diversi o dipartimenti. Creare una cultura che favorisca la condivisione della conoscenza all interno dell azienda.

60 54 3. Verticalizzazione del Sistema nel Contesto del Design Automobilistico Figura 3.1: Fattori chiave per favorire la condivisione dell informazione. Purtroppo spesso le imprese non possiedono sistemi efficienti per favorire lo scambio d informazioni tra i dipendenti, che hanno bisogno di accedere a informazioni di tipo diverso, in momenti e formati diversi, e da più sorgenti. In un contesto aziendale, dove designer e ingegneri collaborano per lo sviluppo di nuovi prodotti, un sistema per favorire la collaborazione e la condivisione di conoscenze porterebbe sicuri benefici in termini di produzione. Al giorno d oggi le fonti di informazioni a cui le imprese fanno riferimento sono o proprietarie, costituite ad esempio da database locali e cataloghi off-line, oppure pubbliche, come il Web. Queste, nonostante rappresentino l approccio comune al problema del Knowledge Management, sono tutt ora risorse difficili da utilizzare efficacemente, in quanto male integrate tra loro. Una soluzione a questo problema è offerta dai sistemi moderni di Product Data Management (PDM) che rappresentano effettivamente una risposta efficace per favorire la condivisione dell informazione e quindi ridurre i tempi di produzione e sviluppo. I sistemi PDM sono in grado di gestire in maniera più strutturata la conoscenza all interno dell impresa in modo da facilitarne il filtraggio e il recupero, ma essi sono utilizzati soltanto nelle fasi di ingegnerizzazione e produzione del prodotto piuttosto che durante tutto il processo.

61 3.1. Obbiettivi Obbiettivi Questo lavoro di tesi vuole dimostrare come l utilizzo di un sistema intelligente per la condivisione di informazioni possa migliorare la collaborazione tra diversi settori aziendali e quindi la produttività. In particolare lo scopo della tesi è quello di verticalizzare il sistema introdotto nel capitolo precedente ad un caso reale. Gli obbiettivi del sistema possono essere così riassunti: Miglioramento della fase di design e studio di nuovi prodotti grazie all utilizzo di strumenti che favoriscono la condivisione e il riutilizzo dell informazione. Nuove metodologie di supporto al lavoro degli industrial designer e product engineer che permettono il recupero e il filtraggio intelligente dell informazione disponibile. Miglior flessibilità nel trasferimento di conoscenza tra settori diversi dell azienda grazie all utilizzo di un sistema capace di: Gestire dati anche complessi in modo intuitivo, veloce ed intelligente da sorgenti eterogenee (web, in-house repository system,... ). Favorire un processo di condivisione di informazioni e conoscenze. Il sistema propone quindi una possibile soluzione al problema di ottimizzazione delle risorse disponibili nel caso di un azienda che opera nel settore automobilistico. 3.2 Implementazione Il sistema gestisce l intero ciclo di vita dell informazione, dalla creazione supportata da tool specifici, alla pubblicazione e condivisione. I tipi di dato utilizzati per testare il funzionamento del sistema sono conformi al dominio applicativo scelto, quindi costituiti principalmente da immagini, brochure, rendering, blueprint e modelli tridimensionali di automobili come indicato in figura 3.2. Il funzionamento del sistema è riassunto di seguito: il designer (identificato nell architettura di riferimenti in figura 2.2 come Knowledge Engineer) si occupa di produrre i contenuti ed associare ad essi un descrittore MPEG-7 che nel caso delle immagini deve essere creato tramite editor di testo utilizzando un documento MPEG-7 come template, mentre nel caso degli oggetti 3D è creato con procedura automatizzata utilizzando un Authoring Tool. L informazione prodotta è inviata al server tramite l applicazione client; il server si

62 56 3. Verticalizzazione del Sistema nel Contesto del Design Automobilistico Figura 3.2: Tipi di dato trattati nel sistema. occupa di dividere il contenuto dalla descrizione MPEG-7 e di inserire entrambi in appositi database. Gli utenti iscritti al sistema possono effettuare delle ricerche accedendo alla relativa pagina web. Sono supportati in questa operazione da un Personal Agent che li assiste nelle operazioni di ricerca effettuate in Internet (tramite Google), su database MPEG-7 e su Sistema per il Supporto della Cultura Implicita. Il sistema fornisce quindi un insieme di tool specifici a supporto dell attività produttiva, che consentono di organizzare le informazioni in maniera strutturata e accessibile. Nei paragrafi successivi sarà ripercorsa l architettura logica del sistema introdotta nel capitolo precedente (vedi figura 2.2) e arricchita di dettagli implementativi legati al particolare dominio applicativo trattato. 3.3 Knowledge Engineer (KE) Il Knowledge Engineer è costituito da un Authoring Tool per creare automaticamente le descrizioni MPEG-7 di modelli tridimensionali sviluppati tramite modellatore 3D e da un applicazione client per trasferire in modo sicuro con-

Progetto di Applicazioni Software

Progetto di Applicazioni Software Progetto di Applicazioni Software Antonella Poggi Dipartimento di Informatica e Sistemistica Antonio Ruberti SAPIENZA Università di Roma Anno Accademico 2008/2009 Questi lucidi sono stati prodotti sulla

Dettagli

Alessandra Raffaetà. Basi di Dati

Alessandra Raffaetà. Basi di Dati Lezione 2 S.I.T. PER LA VALUTAZIONE E GESTIONE DEL TERRITORIO Corso di Laurea Magistrale in Scienze Ambientali Alessandra Raffaetà Dipartimento di Informatica Università Ca Foscari Venezia Basi di Dati

Dettagli

Progetto di Applicazioni Software

Progetto di Applicazioni Software Progetto di Applicazioni Software Antonella Poggi Dipartimento di Informatica e Sistemistica Antonio Ruberti SAPIENZA Università di Roma Anno Accademico 2010/2011 Questi lucidi sono stati prodotti sulla

Dettagli

Rappresentazione della Conoscenza. Sistemi multi-agente. Rappresentazione della conoscenza, A. Farinelli, 2004, Sistemi multi-agente 0

Rappresentazione della Conoscenza. Sistemi multi-agente. Rappresentazione della conoscenza, A. Farinelli, 2004, Sistemi multi-agente 0 Rappresentazione della Conoscenza Sistemi multi-agente Rappresentazione della conoscenza, A. Farinelli, 2004, Sistemi multi-agente 0 Sommario Introduzione [Wooldridge,Ferber - MAS, cap. 1] Interazione

Dettagli

CAPITOLO 27 SCAMBIO DI MESSAGGI

CAPITOLO 27 SCAMBIO DI MESSAGGI CAPITOLO 27 SCAMBIO DI MESSAGGI SCAMBIO DI MESSAGGI Sia che si guardi al microkernel, sia a SMP, sia ai sistemi distribuiti, Quando i processi interagiscono fra loro, devono soddisfare due requisiti fondamentali:

Dettagli

PROGRAMMAZIONE ANUALE DEL DIPARTIMENTO DI INFORMATICA E TELECOMUNICAZIONI ISTITUTO TECNICO a.s. 2015-16

PROGRAMMAZIONE ANUALE DEL DIPARTIMENTO DI INFORMATICA E TELECOMUNICAZIONI ISTITUTO TECNICO a.s. 2015-16 PROGRAMMAZIONE ANUALE DEL DIPARTIMENTO DI INFORMATICA E TELECOMUNICAZIONI ISTITUTO TECNICO a.s. 2015-16 SECONDO BIENNIO Disciplina: INFORMATICA La disciplina Informatica concorre a far conseguire allo

Dettagli

TECNICO SUPERIORE PER LO SVILUPPO DEL SOFTWARE

TECNICO SUPERIORE PER LO SVILUPPO DEL SOFTWARE ISTRUZIONE E FORMAZIONE TECNICA SUPERIORE SETTORE I.C.T. Information and Communication Technology TECNICO SUPERIORE PER LO SVILUPPO DEL SOFTWARE STANDARD MINIMI DELLE COMPETENZE TECNICO PROFESSIONALI DESCRIZIONE

Dettagli

Basi di Dati. Introduzione ai sistemi di basi di dati. K.Donno - Introduzione ai sistemi di basi di dati

Basi di Dati. Introduzione ai sistemi di basi di dati. K.Donno - Introduzione ai sistemi di basi di dati Basi di Dati Introduzione ai sistemi di basi di dati Introduzione ai sistemi di basi di dati Gestione dei Dati Una prospettiva storica File system verso DBSM Vantaggi di un DBMS Modelli dei dati Utenti

Dettagli

Novell ZENworks Configuration Management in ambiente Microsoft * Windows *

Novell ZENworks Configuration Management in ambiente Microsoft * Windows * Guida GESTIONE SISTEMI www.novell.com Novell ZENworks Configuration Management in ambiente Microsoft * Windows * Novell ZENworks Configuration Management in ambiente Microsoft Windows Indice: 2..... Benvenuti

Dettagli

Introduzione ai sistemi di basi di dati

Introduzione ai sistemi di basi di dati Basi di Dati Introduzione ai sistemi di basi di dati Alessandro.bardine@gmail.com alessandro.bardine@iet.unipi.it Introduzione ai sistemi di basi di dati Gestione dei Dati Una prospettiva storica File

Dettagli

Sistemi Informativi Multimediali 1 - Introduzione

Sistemi Informativi Multimediali 1 - Introduzione Che cos è un sistema informativo multimediale? Sistemi Informativi li 1 - Introduzione Augusto Celentano Università Ca Foscari di Venezia Un sistema informativo multimediale (MMDBMS) è un framework che

Dettagli

STANDARD A AFFRONTA GLI STRUMENTI INFORMATICI E DI COMUNICAZIONE NEL LORO USO

STANDARD A AFFRONTA GLI STRUMENTI INFORMATICI E DI COMUNICAZIONE NEL LORO USO 3.5 Area Tecnologica STANDARD A AFFRONTA GLI STRUMENTI INFORMATICI E DI COMUNICAZIONE NEL LORO USO E NELLA LORO FUNZIONE. Livello 1 1.1 Esplicita i propri bisogni di comunicazione e di organizzazione di

Dettagli

4 Modello dati, Ontologie e basi di conoscenza. 4.1 Uso del programma Protégé 3.0 -

4 Modello dati, Ontologie e basi di conoscenza. 4.1 Uso del programma Protégé 3.0 - 4 Modello dati, Ontologie e basi di conoscenza 4.1 Uso del programma Protégé 3.0 - Protégé è un programma in JAVA sviluppato dalla Università di Stanford per creare Ontologie ( Ontologies ). Il programma

Dettagli

KNOWLEDGE MANAGEMENT. Knowledge Management. Knowledge: : cos è. Dispense del corso di Gestione della Conoscenza d Impresa

KNOWLEDGE MANAGEMENT. Knowledge Management. Knowledge: : cos è. Dispense del corso di Gestione della Conoscenza d Impresa KNOWLEDGE MANAGEMENT Pasquale Lops Giovanni Semeraro Dispense del corso di Gestione della Conoscenza d Impresa 1/23 Knowledge Management La complessità crescente della società, l esubero di informazioni

Dettagli

Ingegneria del Software Interattivo. - I siti web - Un breve glossario. Un breve glossario (cont.) Parte sesta: I siti web. 1.

Ingegneria del Software Interattivo. - I siti web - Un breve glossario. Un breve glossario (cont.) Parte sesta: I siti web. 1. Parte sesta: I siti web Ingegneria del Software Interattivo - I siti web - Docente: Daniela Fogli 1. I siti web Nel Contesto Riferimenti: Brajnik, Umano G., Toppano, E. Creare siti web multimediali, Pearson,

Dettagli

Architettura SW Definizione e Notazioni

Architettura SW Definizione e Notazioni Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Stili Architetturali E. TINELLI Architettura SW Definizione e Notazioni Definizione ANSI/IEEE Std Std1471-2000

Dettagli

8. Sistemi Distribuiti e Middleware

8. Sistemi Distribuiti e Middleware 8. Sistemi Distribuiti e Middleware Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 8. Sistemi distribuiti e Middleware 1 / 32 Sommario 1 Sistemi distribuiti

Dettagli

INDIRIZZO Informatica e Telecomunicazioni

INDIRIZZO Informatica e Telecomunicazioni ISTRUZIONE TECNICA INDIRIZZO Informatica e Telecomunicazioni L indirizzo Informatica e Telecomunicazioni ha lo scopo di far acquisire allo studente, al termine del percorso quinquennale, specifiche competenze

Dettagli

Il Provvedimento del Garante

Il Provvedimento del Garante Il Provvedimento del Garante Il provvedimento del Garante per la Protezione dei dati personali relativo agli Amministratori di Sistema (AdS) Misure e accorgimenti prescritti ai titolari dei trattamenti

Dettagli

Groupware e workflow

Groupware e workflow Groupware e workflow Cesare Iacobelli Introduzione Groupware e workflow sono due parole molto usate ultimamente, che, a torto o a ragione, vengono quasi sempre associate. Si moltiplicano i convegni e le

Dettagli

SISTEMI OPERATIVI DISTRIBUITI

SISTEMI OPERATIVI DISTRIBUITI SISTEMI OPERATIVI DISTRIBUITI E FILE SYSTEM DISTRIBUITI 12.1 Sistemi Distribuiti Sistemi operativi di rete Sistemi operativi distribuiti Robustezza File system distribuiti Naming e Trasparenza Caching

Dettagli

SISTEMI E RETI 4(2) 4(2) 4(2) caratteristiche funzionali

SISTEMI E RETI 4(2) 4(2) 4(2) caratteristiche funzionali CL AS SE INFORMATICA 6(3) 6(4) - 6(4) SISTEMI E RETI 4(2) 4(2) 4(2) TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI COMPETENZE 3 Essere in grado di sviluppare semplici applicazioni

Dettagli

Le Basi di dati: generalità. Unità di Apprendimento A1 1

Le Basi di dati: generalità. Unità di Apprendimento A1 1 Le Basi di dati: generalità Unità di Apprendimento A1 1 1 Cosa è una base di dati In ogni modello di organizzazione della vita dell uomo vengono trattate informazioni Una volta individuate e raccolte devono

Dettagli

Il World Wide Web. Il Servizio World Wide Web (WWW) WWW WWW WWW WWW. Storia WWW: obbiettivi WWW: tecnologie Le Applicazioni Scenari Futuri.

Il World Wide Web. Il Servizio World Wide Web (WWW) WWW WWW WWW WWW. Storia WWW: obbiettivi WWW: tecnologie Le Applicazioni Scenari Futuri. Il Servizio World Wide Web () Corso di Informatica Generale (Roberto BASILI) Teramo, 20 Gennaio, 2000 Il World Wide Web Storia : obbiettivi : tecnologie Le Applicazioni Scenari Futuri La Storia (1990)

Dettagli

Programmazione II. Lezione 4. Daniele Sgandurra 30/09/2011. daniele.sgandurra@iit.cnr.it

Programmazione II. Lezione 4. Daniele Sgandurra 30/09/2011. daniele.sgandurra@iit.cnr.it Programmazione II Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 30/09/2011 1/46 Programmazione II Lezione 4 30/09/2011 Sommario 1 Esercitazione 2 Panoramica della Programmazione Ad Oggetti 3

Dettagli

Seminario di Sistemi Distribuiti: RPC su SOAP

Seminario di Sistemi Distribuiti: RPC su SOAP Corso di Sistemi Distribuiti Prof. S. Balsamo Seminario di Sistemi Distribuiti: RPC su SOAP [ 777775] 1 INTRODUZIONE 3 2 RPC 3 3 SOAP (SIMPLE OBJECT ACCESS PROTOCOL) 3 4 UTILIZZO DI SOAP COME PROTOCOLLO

Dettagli

Ingegneria del Software Interattivo. - I siti web - Un breve glossario. Un breve glossario (cont.) Parte sesta: I siti web. 1.

Ingegneria del Software Interattivo. - I siti web - Un breve glossario. Un breve glossario (cont.) Parte sesta: I siti web. 1. Parte sesta: I siti web Ingegneria del Software Interattivo - I siti web - Docente: Daniela Fogli 1. I siti web Nel Contesto Riferimenti: Brajnik, Umano G., Toppano, E. Creare siti web multimediali, Pearson,

Dettagli

Informatica Documentale

Informatica Documentale Informatica Documentale Ivan Scagnetto (scagnett@dimi.uniud.it) Stanza 3, Nodo Sud Dipartimento di Matematica e Informatica Via delle Scienze, n. 206 33100 Udine Tel. 0432 558451 Ricevimento: giovedì,

Dettagli

BOZZA DEL 06/09/2011

BOZZA DEL 06/09/2011 ARTICOLAZIONE: INFORMATICA Disciplina: COMPLEMENTI DI MATEMATICA (C4) Il docente di Complementi di matematica concorre a far conseguire allo studente, al termine del percorso quinquennale, i seguenti risultati

Dettagli

TECNICO SUPERIORE PER IL SISTEMA INFORMATIVO AZIENDALE

TECNICO SUPERIORE PER IL SISTEMA INFORMATIVO AZIENDALE ISTRUZIONE E FORMAZIONE TECNICA SUPERIORE SETTORE INDUSTRIA E ARTIGIANATO TECNICO SUPERIORE PER IL SISTEMA INFORMATIVO AZIENDALE STANDARD MINIMI DELLE COMPETENZE TECNICO PROFESSIONALI DESCRIZIONE DELLA

Dettagli

File System Distribuiti

File System Distribuiti File System Distribuiti Introduzione Nominazione e Trasparenza Accesso ai File Remoti Servizio Con/Senza Informazione di Stato Replica dei File Un esempio di sistema 20.1 Introduzione File System Distribuito

Dettagli

Introduzione. File System Distribuiti. Nominazione e Trasparenza. Struttura dei DFS. Strutture di Nominazione

Introduzione. File System Distribuiti. Nominazione e Trasparenza. Struttura dei DFS. Strutture di Nominazione File System Distribuiti Introduzione Nominazione e Trasparenza Accesso ai File Remoti Servizio Con/Senza Informazione di Stato Replica dei File Un esempio di sistema Introduzione File System Distribuito

Dettagli

MCloud.Gov l infrastruttura SaaS per la Pubblica Amministrazione locale

MCloud.Gov l infrastruttura SaaS per la Pubblica Amministrazione locale MCloud.Gov l infrastruttura SaaS per la Pubblica Amministrazione locale 1. Livello infrastrutturale Il Cloud, inteso come un ampio insieme di risorse e servizi fruibili da Internet che possono essere dinamicamente

Dettagli

3.3 Software didattico (scelta, uso, sviluppo)

3.3 Software didattico (scelta, uso, sviluppo) 3.3 Software didattico (scelta, uso, sviluppo) a cura di Enrico Giliberti, Università di Bologna 3.3.1 Reperimento dell informazione sul SD Individuare, accedere e consultare le principali fonti di informazione

Dettagli

PROGETTO AMS Autonomic Maintenance System

PROGETTO AMS Autonomic Maintenance System PROGETTO AMS Autonomic Maintenance System Progettazione e Sviluppo di un PROTOTIPO di Piattaforma Informatica per la Gestione Autonomica, Integrata e Collaborativa della Manutenzione RELAZIONE TECNICO-SCIENTIFICA

Dettagli

Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN)

Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN) Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN) System Overview di Mattia Bargellini 1 CAPITOLO 1 1.1 Introduzione Il seguente progetto intende estendere

Dettagli

Linguaggi e Paradigmi di Programmazione

Linguaggi e Paradigmi di Programmazione Linguaggi e Paradigmi di Programmazione Cos è un linguaggio Definizione 1 Un linguaggio è un insieme di parole e di metodi di combinazione delle parole usati e compresi da una comunità di persone. È una

Dettagli

CLOUD COMPUTING REFERENCE ARCHITECTURE: LE INDICAZIONI DEL NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY. Prima parte: Panoramica sugli attori

CLOUD COMPUTING REFERENCE ARCHITECTURE: LE INDICAZIONI DEL NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY. Prima parte: Panoramica sugli attori ANALISI 11 marzo 2012 CLOUD COMPUTING REFERENCE ARCHITECTURE: LE INDICAZIONI DEL NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY Nella newsletter N 4 abbiamo già parlato di Cloud Computing, introducendone

Dettagli

Percorso Video Game. Percorsi per la Laurea Magistrale in Informatica. Obiettivi generali. Sbocchi professionali

Percorso Video Game. Percorsi per la Laurea Magistrale in Informatica. Obiettivi generali. Sbocchi professionali Percorsi per la Laurea Magistrale in Informatica Percorso Video Game Docenti di riferimento: Dr. Dario Maggiorini, Dr. Laura Anna Ripamonti Sede di erogazione: Milano Obiettivi generali Il mercato dei

Dettagli

Dalla tastiera alla Smart City, come evolvono tecnologie e servizi

Dalla tastiera alla Smart City, come evolvono tecnologie e servizi Dalla tastiera alla Smart City, come evolvono tecnologie e servizi A. Rossi, P.L. Emiliani Seconda Parte 2012-30 anni di Ausilioteca GIORNATA DI STUDIO La proposta di tecnologie assistive: fattori di qualità

Dettagli

Sistema Operativo Compilatore

Sistema Operativo Compilatore MASTER Information Technology Excellence Road (I.T.E.R.) Sistema Operativo Compilatore Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Il Sistema

Dettagli

È possibile caratterizzare un percorso formativo per gli studenti sulla base di due aree di specializzazione (indirizzi):

È possibile caratterizzare un percorso formativo per gli studenti sulla base di due aree di specializzazione (indirizzi): Percorsi per la Laurea Magistrale in Informatica Percorso Video Game Docenti di riferimento: Dario Maggiorini, Laura Anna Ripamonti Sede di erogazione: Milano LIKE THIS! Obiettivi generali Il mercato dei

Dettagli

Progettazione per requisiti

Progettazione per requisiti Progettazione per requisiti White paper La riproduzione totale o parziale di questo documento è permessa solo se esplicitamente autorizzata da Lecit Consulting Copyright 2003 Lecit Consulting Sommario

Dettagli

TEORIA sulle BASI DI DATI

TEORIA sulle BASI DI DATI TEORIA sulle BASI DI DATI A cura del Prof. Enea Ferri Cos è un DATA BASE E un insieme di archivi legati tra loro da relazioni. Vengono memorizzati su memorie di massa come un unico insieme, e possono essere

Dettagli

Progettaz. e sviluppo Data Base

Progettaz. e sviluppo Data Base Progettaz. e sviluppo Data Base! Introduzione ai Database! Tipologie di DB (gerarchici, reticolari, relazionali, oodb) Introduzione ai database Cos è un Database Cos e un Data Base Management System (DBMS)

Dettagli

WebRatio. L altra strada per il BPM. Web Models s.r.l. www.webratio.com contact@webratio.com 1 / 8

WebRatio. L altra strada per il BPM. Web Models s.r.l. www.webratio.com contact@webratio.com 1 / 8 WebRatio L altra strada per il BPM Web Models s.r.l. www.webratio.com contact@webratio.com 1 / 8 Il BPM Il BPM (Business Process Management) non è solo una tecnologia, ma più a grandi linee una disciplina

Dettagli

Il clustering. Sistemi Distribuiti 2002/2003

Il clustering. Sistemi Distribuiti 2002/2003 Il clustering Sistemi Distribuiti 2002/2003 Introduzione In termini generali, un cluster è un gruppo di sistemi indipendenti che funzionano come un sistema unico Un client interagisce con un cluster come

Dettagli

Sistemi di supporto alle decisioni Ing. Valerio Lacagnina

Sistemi di supporto alle decisioni Ing. Valerio Lacagnina Cosa è il DSS L elevato sviluppo dei personal computer, delle reti di calcolatori, dei sistemi database di grandi dimensioni, e la forte espansione di modelli basati sui calcolatori rappresentano gli sviluppi

Dettagli

Considera tutti i requisiti funzionali (use cases) NON deve necessariamente modellare i requisiti non funzionali

Considera tutti i requisiti funzionali (use cases) NON deve necessariamente modellare i requisiti non funzionali Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Progettazione OO E. TINELLI Punto di Partenza Il modello di analisi E una rappresentazione minima del

Dettagli

CAPITOLO 1 I SISTEMI OPERATIVI

CAPITOLO 1 I SISTEMI OPERATIVI CAPITOLO 1 I SISTEMI OPERATIVI Introduzione ai sistemi operativi pag. 3 La shell pag. 3 Tipi di sistemi operativi pag. 4 I servizi del sistema operativo pag. 4 La gestione dei file e il file system Il

Dettagli

Questo documento riporta informazioni generali sul progetto europeo QALL-ME. Il pubblico al quale si rivolge è ampio e generico e il suo scopo

Questo documento riporta informazioni generali sul progetto europeo QALL-ME. Il pubblico al quale si rivolge è ampio e generico e il suo scopo QALL-ME EXECUTIVE SUMMARY Autore: Bernardo Magnini Presso: ITC-irst, Trento, Italia Introduzione Questo documento riporta informazioni generali sul progetto europeo QALL-ME. Il pubblico al quale si rivolge

Dettagli

Data Base. Prof. Filippo TROTTA

Data Base. Prof. Filippo TROTTA Data Base Definizione di DataBase Un Database può essere definito come un insieme di informazioni strettamente correlate, memorizzate su un supporto di memoria di massa, costituenti un tutt uno, che possono

Dettagli

Architetture Web. parte 1. Programmazione in Ambienti Distribuiti A.A. 2003-04

Architetture Web. parte 1. Programmazione in Ambienti Distribuiti A.A. 2003-04 Architetture Web parte 1 Programmazione in Ambienti Distribuiti A.A. 2003-04 Architetture Web (1) Modello a tre livelli in cui le interazioni tra livello presentazione e livello applicazione sono mediate

Dettagli

Sistemi Informativi e WWW

Sistemi Informativi e WWW Premesse Sistemi Informativi e WWW WWW: introduce un nuovo paradigma di diffusione (per i fornitori) e acquisizione (per gli utilizzatori) delle informazioni, con facilità d uso, flessibilità ed economicità

Dettagli

1. FINALITA DELLA DISCIPLINA

1. FINALITA DELLA DISCIPLINA Ministero dell Istruzione dell Università e della Ricerca LICEO SCIENTIFICO STATALE Donato Bramante Via Trieste, 70-20013 MAGENTA (MI) - MIUR: MIPS25000Q Tel.: +39 02 97290563/4/5 Fax: 02 97220275 Sito:

Dettagli

Basi di dati. Basi di dati = database. Basi di dati

Basi di dati. Basi di dati = database. Basi di dati Basi di dati Da leggere: Cap. 6 Sawyer, Williams (testo A) Basi di dati = database Sono una delle applicazioni informatiche che hanno avuto il maggiore utilizzo in uffici, aziende, servizi -> oggi anche

Dettagli

Laboratorio di Informatica I

Laboratorio di Informatica I Struttura della lezione Lezione 1: Le Architetture Distribuite Vittorio Scarano Algoritmi e Strutture Dati: Algoritmi Distribuiti Corso di Laurea in Informatica Università di Salerno Le architetture distribuite

Dettagli

Talent Management 2020. Scenari e prospettive futuri

Talent Management 2020. Scenari e prospettive futuri Talent Management 2020 Scenari e prospettive futuri INTRODUZIONE Le funzioni delle Risorse Umane (Human Resources-HR) non solo forniscono molti servizi interni, come la selezione del personale, il sostegno

Dettagli

SWIM v2 Design Document

SWIM v2 Design Document PROGETTO DI INGEGNERIA DEL SOFTWARE 2 SWIM v2 DD Design Document Matteo Danelli Daniel Cantoni 22 Dicembre 2012 1 Indice Progettazione concettuale Modello ER Entità e relazioni nel dettaglio User Feedback

Dettagli

SIMULWARE. SimulwareProfessional

SIMULWARE. SimulwareProfessional SIMULWARE SimulwareProfessional Che cosʼè SimulwareProfessional SimulwareProfessional è una piattaforma elearning SCORM-AICC compliant con un elevato livello di scalabilità e personalizzazione. Si presenta

Dettagli

INTRODUZIONE A RETI E PROTOCOLLI

INTRODUZIONE A RETI E PROTOCOLLI PARTE 1 INTRODUZIONE A RETI E PROTOCOLLI Parte 1 Modulo 1: Introduzione alle reti Perché le reti tra computer? Collegamenti remoti a mainframe (< anni 70) Informatica distribuita vs informatica monolitica

Dettagli

5. Requisiti del Software II

5. Requisiti del Software II 5. Requisiti del Software II Come scoprire cosa? Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 5. Requisiti del Software II 1 / 42 Sommario 1 Generalità

Dettagli

Appunti di Sistemi Distribuiti

Appunti di Sistemi Distribuiti Appunti di Sistemi Distribuiti Matteo Gianello 27 settembre 2013 1 Indice 1 Introduzione 3 1.1 Definizione di sistema distribuito........................... 3 1.2 Obiettivi.........................................

Dettagli

Istituti Tecnici - Settore tecnologico Indirizzo Informatica e telecomunicazioni Articolazione Informatica

Istituti Tecnici - Settore tecnologico Indirizzo Informatica e telecomunicazioni Articolazione Informatica Linee guida Secondo ciclo di istruzione Istituti Tecnici - Settore tecnologico Indirizzo Informatica e telecomunicazioni Quadro orario generale 1 biennio 2 biennio 5 anno 1^ 2^ 3^ 4^ 5^ Sistemi e reti**

Dettagli

Sommario. G. Piscitelli

Sommario. G. Piscitelli Sommario Interprocess Communication Processi (e thread) cooperanti Il paradigma produttore-consumatore Shared Memory e Inter Process Communication (IPC) facility Proprietà caratteristiche della comunicazione

Dettagli

Dispense di Filosofia del Linguaggio

Dispense di Filosofia del Linguaggio Dispense di Filosofia del Linguaggio Vittorio Morato II settimana Gottlob Frege (1848 1925), un matematico e filosofo tedesco, è unanimemente considerato come il padre della filosofia del linguaggio contemporanea.

Dettagli

La Learning Organization Apprendimento organizzativo, individuale e generativo

La Learning Organization Apprendimento organizzativo, individuale e generativo La Learning Organization Apprendimento organizzativo, individuale e generativo Francesco Sardu 8 agosto 2003 indice 1. Apprendimento organizzativo, individuale e generativo 2. Le cinque discipline per

Dettagli

EGOVERNMENT ED EGOVERNANCE

EGOVERNMENT ED EGOVERNANCE Prot. 13/2011 del 25/01/2011 Pag. 0 di 11 ADMINISTRA COMUNE DI NAPOLI Il progetto Administra nasce dall esigenza del Comune di Napoli di disporre di un unica infrastruttura tecnologica permanente di servizi

Dettagli

La rete ci cambia la vita. Le persone sono interconnesse. Nessun luogo è remoto. Reti di computer ed Internet

La rete ci cambia la vita. Le persone sono interconnesse. Nessun luogo è remoto. Reti di computer ed Internet La rete ci cambia la vita Lo sviluppo delle comunicazioni in rete ha prodotto profondi cambiamenti: Reti di computer ed Internet nessun luogo è remoto le persone sono interconnesse le relazioni sociali

Dettagli

Reti di computer ed Internet

Reti di computer ed Internet Reti di computer ed Internet La rete ci cambia la vita Lo sviluppo delle comunicazioni in rete ha prodotto profondi cambiamenti: nessun luogo è remoto le persone sono interconnesse le relazioni sociali

Dettagli

I Modelli della Ricerca Operativa

I Modelli della Ricerca Operativa Capitolo 1 I Modelli della Ricerca Operativa 1.1 L approccio modellistico Il termine modello è di solito usato per indicare una costruzione artificiale realizzata per evidenziare proprietà specifiche di

Dettagli

COMPETENZE CHIAVE DI CITTADINANZA: declinazione negli ASSI CULTURALI

COMPETENZE CHIAVE DI CITTADINANZA: declinazione negli ASSI CULTURALI COMPETENZE CHIAVE DI CITTADINANZA: declinazione negli ASSI CULTURALI Mantenendo il curricolo sulle sole competenze disciplinari si rischia di rimanere alle discipline senza perseguire realmente competenze,

Dettagli

Processi di Business e Sistemi di Gestione di Workflow: concetti di base. Prof. Giancarlo Fortino g.fortino@unical.it

Processi di Business e Sistemi di Gestione di Workflow: concetti di base. Prof. Giancarlo Fortino g.fortino@unical.it Processi di Business e Sistemi di Gestione di Workflow: concetti di base Prof. Giancarlo Fortino g.fortino@unical.it Introduzione Le aziende devono modificare la loro organizzazione per cogliere le nuove

Dettagli

Object Oriented Programming

Object Oriented Programming OOP Object Oriented Programming Programmazione orientata agli oggetti La programmazione orientata agli oggetti (Object Oriented Programming) è un paradigma di programmazione Permette di raggruppare in

Dettagli

EMERGENCE OF SELF ORGANIZATION AND SEARCH FOR OPTIMAL ENTERPRISE STRUCTURE: AI EVOLUTIONARY METHODS APPLIED TO AGENT BASED PROCESS SIMULATION

EMERGENCE OF SELF ORGANIZATION AND SEARCH FOR OPTIMAL ENTERPRISE STRUCTURE: AI EVOLUTIONARY METHODS APPLIED TO AGENT BASED PROCESS SIMULATION EMERGENCE OF SELF ORGANIZATION AND SEARCH FOR OPTIMAL ENTERPRISE STRUCTURE: AI EVOLUTIONARY METHODS APPLIED TO AGENT BASED PROCESS SIMULATION remond@di.unito.it Department of Computer Science University

Dettagli

TECNICO SUPERIORE PER LE APPLICAZIONI INFORMATICHE

TECNICO SUPERIORE PER LE APPLICAZIONI INFORMATICHE ISTRUZIONE E FORMAZIONE TECNICA SUPERIORE SETTORE I.C.T. Information and Communication Technology TECNICO SUPERIORE PER LE APPLICAZIONI INFORMATICHE STANDARD MINIMI DELLE COMPETENZE TECNICO PROFESSIONALI

Dettagli

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it Automazione Industriale (scheduling+mms) scheduling+mms adacher@dia.uniroma3.it Introduzione Sistemi e Modelli Lo studio e l analisi di sistemi tramite una rappresentazione astratta o una sua formalizzazione

Dettagli

Programmabilità di rete con l'infrastruttura Cisco basata sulle applicazioni

Programmabilità di rete con l'infrastruttura Cisco basata sulle applicazioni White paper Programmabilità di rete con l'infrastruttura Cisco basata sulle applicazioni Panoramica Questo documento analizza il supporto alla programmabilità nell'infrastruttura ACI (Application Centric

Dettagli

Sistemi Distribuiti Introduzione al corso

Sistemi Distribuiti Introduzione al corso Altri testi di consultazione Sistemi Distribuiti Introduzione al corso Testo di riferimento G.Coulouris, J.Dollimore and T.Kindberg Distributed Systems: Concepts and Design IV Ed., Addison-Wesley 2005

Dettagli

Ingegneria dei Requisiti

Ingegneria dei Requisiti Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Ingegneria dei Requisiti E. TINELLI Contenuti I requisiti del software Documento dei requisiti I processi

Dettagli

Guida pratica alle applicazioni Smart Process

Guida pratica alle applicazioni Smart Process Guida pratica alle applicazioni Smart Process Aprile 2014 Kemsley Design Limited www.kemsleydesign.com www.column2.com Panoramica La qualità delle interazioni con clienti e partner è vitale per il successo

Dettagli

REPORT GRUPPO DI LAVORO III

REPORT GRUPPO DI LAVORO III REPORT GRUPPO DI LAVORO III Piattaforma web Network per la RCS per la gestione dei flussi informativi ed organizzazione Centrale di produzione coordinata e permanente delle pillole informative del SSR

Dettagli

Sistemi Operativi (modulo di Informatica II)

Sistemi Operativi (modulo di Informatica II) Sistemi Operativi (modulo di Informatica II) La comunicazione tra processi Patrizia Scandurra Università degli Studi di Bergamo a.a. 2008-09 Sommario Processi cooperanti La comunicazione tra processi Necessità

Dettagli

Introduzione ai sistemi di basi di dati

Introduzione ai sistemi di basi di dati Introduzione ai sistemi di basi di dati Basi di dati 1 Introduzione ai sistemi di basi di dati Angelo Montanari Dipartimento di Matematica e Informatica Università di Udine Introduzione ai sistemi di basi

Dettagli

RAPPRESENTAZIONE E E GESTIONE DEL CORE KNOWLEDGE

RAPPRESENTAZIONE E E GESTIONE DEL CORE KNOWLEDGE KNOWLEDGE MANAGEMENT Seminario Tematico Università di Milano-Bicocca RAPPRESENTAZIONE E E GESTIONE DEL CORE KNOWLEDGE Stefania Bandini Dipartimento di Informatica, Sistemistica e Comunicazione Università

Dettagli

Quali sono le tecnologie che l ente ha a disposizione e quelle predisposte ad essere implementate in un prossimo futuro.

Quali sono le tecnologie che l ente ha a disposizione e quelle predisposte ad essere implementate in un prossimo futuro. Esercizio di GRUPPO: PROTOCOLLO INFORMATICO Mappa concettuale TECNOLOGIE DISPONIBILI Quali sono le tecnologie che l ente ha a disposizione e quelle predisposte ad essere implementate in un prossimo futuro.

Dettagli

L iniziativa Cloud DT

L iniziativa Cloud DT L iniziativa Cloud DT Francesco Castanò Dipartimento del Tesoro Ufficio per il Coordinamento Informatico Dipartimentale (UCID) Roma, Luglio 2011 Il Cloud Computing Alcune definizioni Il Cloud Computing

Dettagli

BOZZA 2.1. 7 Febbraio 2008 LA CARTA DI LONDRA PER LA VISUALIZZAZIONE DIGITALE DEI BENI CULTURALI. Introduzione. Obiettivi.

BOZZA 2.1. 7 Febbraio 2008 LA CARTA DI LONDRA PER LA VISUALIZZAZIONE DIGITALE DEI BENI CULTURALI. Introduzione. Obiettivi. BOZZA 2.1 7 Febbraio 2008 LA CARTA DI LONDRA PER LA VISUALIZZAZIONE DIGITALE DEI BENI CULTURALI Introduzione Obiettivi Principi Principio 1: Implementazione Principio 2: Scopi e metodi Principio 3: Fonti

Dettagli

Corso di Laurea in Ingegneria Informatica Algoritmi e basi di dati Modulo Basi di dati a.a. 2010-2011

Corso di Laurea in Ingegneria Informatica Algoritmi e basi di dati Modulo Basi di dati a.a. 2010-2011 Corso di Laurea in Ingegneria Informatica Algoritmi e basi di dati Modulo Basi di dati a.a. 2010-2011 2011 Docente: Gigliola Vaglini Docente laboratorio: Alessandro Lori 1 Obiettivi del corso Imparare

Dettagli

ACRL Association of College and Research Libraries

ACRL Association of College and Research Libraries ACRL Association of College and Research Libraries Standard delle competenze per il possesso dell informazione (information literacy) nell educazione superiore Standard, indicatori di performance, obiettivi

Dettagli

I meccanismi di coordinamento

I meccanismi di coordinamento Scienze della comunicazione Le determinanti della complessità del problema di coordinamento Differenziazione Interdipendenza Corso di Organizzazione aziendale dott.ssa Francesca Chiara Esigenze di integrazione

Dettagli

Il funzionamento delle reti

Il funzionamento delle reti Il funzionamento delle reti La rete ci cambia la vita L Età dell Informazione ha prodotto profondi cambiamenti nessun luogo è remoto le persone sono interconnesse le relazioni sociali stanno mutando l

Dettagli

Capitolo 3. Il funzionamento delle reti

Capitolo 3. Il funzionamento delle reti Capitolo 3 Il funzionamento delle reti La rete ci cambia la vita L Età dell Informazione ha prodotto profondi cambiamenti nessun luogo è remoto le persone sono interconnesse le relazioni sociali stanno

Dettagli

Un approccio per sviluppare applicazioni di. E Democracy basato su ruoli per agenti mobili

Un approccio per sviluppare applicazioni di. E Democracy basato su ruoli per agenti mobili UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria Sede di Modena Corso di Laurea in Ingegneria Informatica Un approccio per sviluppare applicazioni di E Democracy basato su ruoli per

Dettagli

SCHEDA DI PROGRAMMAZIONE DISCIPLINARE DA RIPORTARE SUL P.O.F. A.S. 2014-2015. Ripasso programmazione ad oggetti. Basi di dati: premesse introduttive

SCHEDA DI PROGRAMMAZIONE DISCIPLINARE DA RIPORTARE SUL P.O.F. A.S. 2014-2015. Ripasso programmazione ad oggetti. Basi di dati: premesse introduttive SCHEDA DI PROGRAMMAZIONE DISCIPLINARE DA RIPORTARE SUL P.O.F. A.S. 2014-2015 ASSE DISCIPLINA DOCENTE MATEMATICO INFORMATICA Cattani Barbara monoennio CLASSE: quinta CORSO D SEZIONE LICEO SCIENZE APPLICATE

Dettagli

Anno Scolastico: 2014/2015. Indirizzo: Sistemi informativi aziendali. Classe quarta AS. Disciplina: Informatica. prof.

Anno Scolastico: 2014/2015. Indirizzo: Sistemi informativi aziendali. Classe quarta AS. Disciplina: Informatica. prof. Anno Scolastico: 2014/2015 Indirizzo: Sistemi informativi aziendali Classe quarta AS Disciplina: Informatica prof. Competenze disciplinari: Secondo biennio 1. Identificare e applicare le metodologie e

Dettagli

Automazione dei processi con SharePoint: Windows SharePoint Foundation 2010 Workflow o Josh, il sistema di Business Process Management?

Automazione dei processi con SharePoint: Windows SharePoint Foundation 2010 Workflow o Josh, il sistema di Business Process Management? Automazione dei processi con SharePoint: Windows SharePoint Foundation 2010 Workflow o Josh, il sistema di Business Process Management? di Gabriele Del Giovine (Tech. Strategist, it Consult) e Giovanni

Dettagli

Introduzione. Laurea magistrale in ingegneria informatica A.A. 2011-2012. Leonardo Querzoni. Versioni al tratto. Versione 3D

Introduzione. Laurea magistrale in ingegneria informatica A.A. 2011-2012. Leonardo Querzoni. Versioni al tratto. Versione 3D Introduzione Versioni al tratto Versione 3D Sistemi La versione negativa Distribuiti 3D prevede l utilizzo dell ombra esclusivamente sul fondo colore Rosso Sapienza. Laurea magistrale in ingegneria informatica

Dettagli

network subnet host Classe A poche reti di dimensioni molto grandi 127

network subnet host Classe A poche reti di dimensioni molto grandi 127 INDIRIZZAMENTO IP Gli indirizzi IP, che devono essere univoci sulla rete, sono lunghi 32 bit (quattro byte) e sono tradizionalmente visualizzati scrivendo i valori decimali di ciascun byte separati dal

Dettagli

Introduzione alle applicazioni di rete

Introduzione alle applicazioni di rete Introduzione alle applicazioni di rete Definizioni base Modelli client-server e peer-to-peer Socket API Scelta del tipo di servizio Indirizzamento dei processi Identificazione di un servizio Concorrenza

Dettagli