Progetto e realizzazione di un agente per l'esplorazione dei servizi di rete
L?enorme diffusione tecnologica avuta in questi anni ha portato ad una conseguente crescita di servizi offerti dai network (in particolare Internet); il numero di tali servizi potrebbe diventare così elevato che l?utente non sarà più in grado di gestirne la mole. Inoltre la complessità di configurazione di alcuni dispositivi potrebbe rendere troppo laborioso ed oneroso l?utilizzo di un servizio, soprattutto per i neofiti. Diventa quindi necessario garantire agli utenti la possibilità di ricercare, configurare ed utilizzare i servizi nel modo più veloce e trasparente possibile garantendo nel contempo affidabilità e sicurezza. Per questo motivo acquista sempre maggior importanza negli scenari futuri, la progettazione di un meccanismo in grado di venire in contro all?utente nella gestione di servizi in reti anche molto complesse, mobili e non note a priori. Difatti, la comunicazione tra dispositivi in movimento (mobile computing), ottenuta grazie a tecnologie wireless, ha reso più difficoltoso l?utilizzo dei servizi in quanto, in genere, si tende a lavorare in ambienti dinamici e con infrastrutture sconosciute.
Seguendo questo principio, industrie ed organizzazioni per le standardizzazioni hanno proposto numerose soluzioni per permettere ad un dispositivo o ad un componente software di esplorare automaticamente una rete alla ricerca di servizi, riportando all?utente tutte le informazioni necessarie (nome, attributi, invocazioni e stato) per l?utilizzo. Tali meccanismi prendono il nome di Service Discovery Protocol. L?idea alla base di queste tecnologie è l?auto-configurazione: in un ambiente di service discovery, i servizi si fanno carico di notificare la loro presenza e disponibilità, permettendo ad altre entità di ottenere informazioni sulle loro capacità e caratteristiche, in modo del tutto autonomo.
Obiettivo di questa tesi sarà l?analisi e la progettazione di un?applicazione, orientata agli agenti, in grado di sfruttare ed utilizzare tutti i protocolli attualmente sviluppati e quelli futuri. La scelta del paradigma Agent-Oriented risulta ottimale in quanto fornisce strumenti, astrazioni e metodologie per modellare e progettare complessi sistemi software. Infatti, i paradigmi tradizionali normalmente adottati dall?ingegneria del software, come quello ad oggetti, non risultano sufficientemente espressivi per costruire sistemi software molto articolati.
La tesi è così strutturata: nel primo capitolo verrà affrontato il concetto di service discovery e saranno studiati ed analizzati i principali protocolli attualmente disponibili; nel secondo capitolo si parlerà del paradigma ad agenti e la metodologia SODA, adottati per l?analisi, la progettazione e l?implementazione dell?applicazione; nel terzo capitolo verrà presentata l?infrastruttura TuCSoN necessaria per la coordinazione tra agenti. Nel quarto e quinto capitolo, infine, verrà analizzata, progettata ed implementata l?applicazione in modo da poter verificare le considerazioni fatte nel corso del trattato.