19

Presentazione del problema Obiettivo: Lapplicazione di Search of Sematic Services permette di ricercare sevizi semantici, ossia servizi a cui sono associati

Embed Size (px)

Citation preview

Page 1: Presentazione del problema Obiettivo: Lapplicazione di Search of Sematic Services permette di ricercare sevizi semantici, ossia servizi a cui sono associati
Page 2: Presentazione del problema Obiettivo: Lapplicazione di Search of Sematic Services permette di ricercare sevizi semantici, ossia servizi a cui sono associati

Presentazione del problema

Obiettivo:L’applicazione di Search of Sematic Services permette di ricercare sevizi semantici, ossia servizi a cui sono associati uno o più file descrittivi.

Struttura:L’applicazione si compone di due parti, una web application ed una desktop application. La ricerca verrà effettuata tramite keyword ed i file da ricercare saranno di tre diversi tipi: WSDL, BPEL e SWSAL. La ricerca si basa su quattro livelli ossia c’è la possibilità di ricercare i servizi interni ad un repository locale e/o su di un repository pubblico interno al nostro server e/o su repository predefiniti ed infine eventualmente anche nel web.

Page 3: Presentazione del problema Obiettivo: Lapplicazione di Search of Sematic Services permette di ricercare sevizi semantici, ossia servizi a cui sono associati

Servizio semantico

Un servizio semantico è un servizio web a cui è associata una semantica ossia al servizio vengono affiancate informazioni e dati (metadati) che specificano il contesto semantico in un formato adatto all'interrogazione, all'interpretazione e, più in generale, all'elaborazione automatica.Nel nostro contesto elaboriamo servizi che forniscono descrittori WSDL, BPEL e SWSAL.

Page 4: Presentazione del problema Obiettivo: Lapplicazione di Search of Sematic Services permette di ricercare sevizi semantici, ossia servizi a cui sono associati

WSDL: web services description lenguage, è un linguaggio formale in formato XML utilizzato per la creazione di "documenti" per la descrizione di Web Service. Mediante WSDL può essere, infatti, descritta l'interfaccia pubblica di un Web Service ovvero creata una descrizione, basata su XML, di come interagire con un determinato servizio.

BPEL: Business Process Execution Language è un linguaggio basato sull'XML costruito per descrivere formalmente i processi commerciali ed industriali in modo da permettere una suddivisione dei compiti tra attori diversi. BPEL è in particolare adatto a modellare workflow completamente automatizzati, per la composizione di web service con l'integrazione di servizi con hardware eterogenei, architetture di rete e linguaggio del relativo codice.

Cos’è un WSDL ed un BPEL

Page 5: Presentazione del problema Obiettivo: Lapplicazione di Search of Sematic Services permette di ricercare sevizi semantici, ossia servizi a cui sono associati

A questo livello di astrazione abbiamo definito cosa fa il software mediante la suddivisione del problema principale in sottoproblemi che corrispondo alle funzionalità da esso offerto. Abbiamo individuato i seguenti scenari:

• Ricerca• Memorizzazione file e link dei servizi• Gestione repository locale• Gestione repository pubblico• Indicizzazione dei risultati• Controllo autenticazione amministratore

Analisi orientata agli scenari

Page 6: Presentazione del problema Obiettivo: Lapplicazione di Search of Sematic Services permette di ricercare sevizi semantici, ossia servizi a cui sono associati

Diagramma dei casi d’uso

Page 7: Presentazione del problema Obiettivo: Lapplicazione di Search of Sematic Services permette di ricercare sevizi semantici, ossia servizi a cui sono associati

Diagramma delle classiDesktop application

Ricerca

Memorizzazione

Gestione repo locale

Page 8: Presentazione del problema Obiettivo: Lapplicazione di Search of Sematic Services permette di ricercare sevizi semantici, ossia servizi a cui sono associati

Diagramma dei packageDesktop application

Page 9: Presentazione del problema Obiettivo: Lapplicazione di Search of Sematic Services permette di ricercare sevizi semantici, ossia servizi a cui sono associati

Diagramma delle classiWeb application

Gestione repo pubblico

Ricerca

Indicizzazione

Page 10: Presentazione del problema Obiettivo: Lapplicazione di Search of Sematic Services permette di ricercare sevizi semantici, ossia servizi a cui sono associati

Diagramma dei packageWeb application

Page 11: Presentazione del problema Obiettivo: Lapplicazione di Search of Sematic Services permette di ricercare sevizi semantici, ossia servizi a cui sono associati

Ricerca

Ovviamente punto centrale della nostra applicazione è la ricerca; questa verte su due diverse parti:• Ricerca sui repository• Ricerca sul web

La ricerca sui repository è la modalità di ricerca condotta sui repository pubblico, locale e predefiniti.

La ricerca sul web consiste nella ricerca dei file descrittori direttamente sul web mediante l’uso delle API messe a disposizione da google.

Nota implementativa di rilievo: le due ricerche nella desktop application risultano essere

Ricerca

Ricerca Repository

Ricerca Web

Page 12: Presentazione del problema Obiettivo: Lapplicazione di Search of Sematic Services permette di ricercare sevizi semantici, ossia servizi a cui sono associati

Ricerca sui repository

Per il parsing dei file abbiamo utilizzato DocumentBuilderFactory, che è il parser DOM predefinito per il java, il quale ci consente di ottenere una rappresentazione ad albero del file XML.

Definizione livelli di ricerca

Reperimento file repository

Exec ricerca con parsing file

Restituzione array risultati

Page 13: Presentazione del problema Obiettivo: Lapplicazione di Search of Sematic Services permette di ricercare sevizi semantici, ossia servizi a cui sono associati

Ricerca sul web

Per l’esecuzione della ricerche dei file descrittori sul web abbiamo utilizzato google come motore di ricerca; ci siamo interfacciati alle sue API mediante il package org.json

Definizione motore di ricecra

Costruzione query

Exec ricerca con strutturazione dei

risultati

Restituzione array risultati

Page 14: Presentazione del problema Obiettivo: Lapplicazione di Search of Sematic Services permette di ricercare sevizi semantici, ossia servizi a cui sono associati

Link

public Link(String servName,String servLink,String wsdl,String bpel,String swsal, String servRepo ){this.wsdlLink=wsdl;this.bpelLink=bpel;this.swsalLink=swsal;this.servLink=servLink;this.servName=servName;this.servRepo=servRepo;

}

La classe Link è una delle classi principali di tutto il progetto in quanto definisce un oggetto che ha internamente tutto quello che ci serve per definire un servizio dal punto di vista del risultato della ricerca. A seconda degli ambiti di applicazione dell’oggetto saranno presenti in maniera opzionale altre tre caratteristiche che sono il rank (valore intero utilizzato nell’ambito dell’indicizzazione), servDescr (valore di tipo stringa usato nella ricerca) e servMeta (array di stringhe che corrispondono a parole chiave rappresentative del servizio).

Page 15: Presentazione del problema Obiettivo: Lapplicazione di Search of Sematic Services permette di ricercare sevizi semantici, ossia servizi a cui sono associati

Parametri e file di configurazione

Come linguaggio di caratterizzazione dei nostri file di configurazione e dei repository abbiamo utilizzato l’xml. Questo metalinguaggio ci ha consentito di definire, sintatticamente e di conseguenza semanticamente, tag che poi sono stati usati per reperire parametri necessari all’esecuzione del software.

Per quanto riguarda la desktop application abbiamo utilizzato :un file di configurazione, situato in locale, utilizzato per il settaggio del link del repository locale e per la configurazione del proxy;

Per la web application:• un file di configurazione, collocato sul server web, utilizzato per il settaggio del link del repository pubblico e predefiniti, per la configurazione del proxy e per gestire gli accessi degli amministratori.

Page 16: Presentazione del problema Obiettivo: Lapplicazione di Search of Sematic Services permette di ricercare sevizi semantici, ossia servizi a cui sono associati

Struttura dei repository

La struttura da noi utilizzata è la medesima sia per il repository locale, pubblico e per quelli predefiniti. Tale struttura prevede l’utilizzo del tag root repository il quale all’interno conterrà un elenco di servizi.Ogni servizio è caratterizzato dalla seguente struttura a tag:

<service> <name> ferrarelle </name><servLink> www.ferra.net </servLink><wsdl> lete.wsdl </wsdl><bpel> lete.bpel </bpel><swsal> lete.swsal </swsal><rank> 35 </rank><description> servizio acqua ferrarelle </description><meta> acqua </meta><meta> ferrarelle </meta>

</service>

Page 17: Presentazione del problema Obiettivo: Lapplicazione di Search of Sematic Services permette di ricercare sevizi semantici, ossia servizi a cui sono associati

Indicizzazione e criterio di ranking

Risultati Attribuzione valutazione

analisi

Ricerca

rank.xmlMemorizzazione

• I primi 20risultati della ricerca condotta sul rank saranno aggiunti al file rank.xml;• Se un risultato era stato in precedenza memorizzato nel file rank.xml il rank associato al servizio sarà incrementato di 1;• L’operazione di associazione di un rank ad un servizio viene effettuata anche all’atto del salvataggio di un file ma in questo caso il valore sarà incrementato di 5 a fronte di un maggiore interesse riscontrato sul servizio da parte dell’utente;• Con scadenza di 30 giorni il demone esegue una potatura del file rank.xml a 100 servizi, questo al fine di evitare una crescita esponenziale di quest’ultimo. In seguito alla potatura i risultati indicizzati su rank.xml andranno ad essere accodati al repository pubblico;• Questa funzionalità riguarda la web application.

P.S. i valori numerici utilizzati sono quelli di default, cioè i valori attualmente assegnati mediante file di configurazione. Questi valori possono essere personalizzati mediante file di configurazione.

Page 18: Presentazione del problema Obiettivo: Lapplicazione di Search of Sematic Services permette di ricercare sevizi semantici, ossia servizi a cui sono associati

Conclusioni

• Software multipiattaforma con caratteristiche di leggerezza e semplicità d’uso;

• Sistema di indicizzazione;

• Google API per sfruttare uno dei migliori motori di ricerca attuali;

• Sicurezza con sistema crittografico MD5;

• Difficoltà implementative per colmare il gap tra teorico e pratico;

Page 19: Presentazione del problema Obiettivo: Lapplicazione di Search of Sematic Services permette di ricercare sevizi semantici, ossia servizi a cui sono associati

FINE