Capitolo 5: Workflow Implementazione
5.9 Servizi esposti
5.9.2 Servizi esposti all'amministratore del modulo di classificazione
I servizi esposti all'amministratore del modulo di classificazione per sviluppare nuove funzionalità o effettuare test sono elencati nelle tabelle in seguito. Anche tali servizi non sono tutti quelli ricavabili dal “workflow progetto”. Il web service che espone tali servizi è disponibile tramite il relativo WSDL all'indirizzo:
http://131.114.58.252:8080/SmartyWeb/SmartyDeveloperServices?wsdl
caricaNuovoEvento
Nome del Servizio
caricaNuovoEvento
Descrizione
Il servizio carica un nuovo evento nel sistema software. Oltre a caricare un nuovo evento, carica anche i dettagli di tale evento (null di default). Infine il database viene aggiornato con i nuovi dati inseriti.
Parametri
Nome Tipo Descrizione
nomeEvento String Il nome con cui sarà riferito
l'evento. (es. Traffico)
descrizioneEvento String Nella prima versione rilasciata
dell'applicazione, viene
utilizzato solo tale campo testuale per inserire dettagli aggiuntivi. (es. Manifestazione- > verifica la presenza di una manifestazione in città)
Valore Restituito Tipo Descrizione
Boolean Se l'operazione va a buon fine torna come risultato true, altrimenti false.
modificaEvento
Nome del Servizio
Descrizione
Il servizio consente di modificare il nome e la descrizione di un evento precedentemente inserito. Infine il database viene aggiornato con i nuovi dati inseriti. Se il parametro nuovaDescrizione è null o vuoto, viene lasciata inalterata la descrizione precedente. Se il parametro nuovoNomeEvento è null o vuoto, viene lasciato inalterato il nome precedente.
Parametri
Nome Tipo Descrizione
nomeEvento String Il nome con cui sarà riferito
l'evento. (es. Traffico)
nuovoNomeEvento String Il nuovo nome con cui sarà
riferito l'evento. (es. Incidente)
nuovaDescrizione String La nuova descrizione per l'evento.
Valore Restituito Tipo Descrizione
String Viene restituita una stringa formattata in formato json contenente:
se nuovoNomeEvento è diverso da null o vuoto
allora === Nome Evento modificato: === " + + nuovoNomeEvento +";
se nuovaDescrizione è diverso da null o vuoto
allora === Descrizione Modificata: === " + + nuovaDescrizione +";
cancellaEvento
Nome del Servizio
cancellaEvento
Descrizione
Il servizio consente di cancellare un evento dal database precedentemente inserito. Viene cancellata anche la tupla relativa all'evento nella tabella DettagliEvento.
Parametri
Nome Tipo Descrizione
nomeEvento String Il nome con cui è riferito
Valore Restituito Tipo Descrizione
Boolean Se l'operazione va a buon fine torna come risultato true, altrimenti false.
creaModello
Nome del Servizio
creaModello
Descrizione
Permette la creazione di un nuovo modello di classificazione con cui classificare i tweet.
Parametri
Nome Tipo Descrizione
dataSet String Il nome del file.arff contenente
il dataset di training.
nomeDaDareAlModello String Il nome con cui sarà riferito il
modello, seguito da .model . (es. SMOtest.model)
eventoDelModello String L'evento di cui il modello
verifica o meno la presenza.
Valore Restituito Tipo Descrizione
String una stringa formattata in JSON che specifica l'esito dell'operazione e i risultati ottenuti. Il payload contiene un oggetto Modello
mostraModelliDisponibili
Nome del Servizio
MostraModelliDisponibili
Descrizione
Vengono visualizzati i modelli presenti all'interno del sistema con cui è possibile effettuare la classificazione dei tweet.
Parametri
Nome Tipo Descrizione
- - -
Valore Restituito Tipo Descrizione
String una stringa formattata in JSON che specifica l'esito dell'operazione e i risultati ottenuti. Il payload contiene una lista di oggetti Modello, relativa ai modelli presenti all'interno del sistema
Esempio di Oggetto restituito
return (string): {"header": {"code":"200", "shortDescription":"OK", "longDescription":""}, "payload":[ {“type”: “Modello”, "id":”1”, "idEvento":"1", "nome":"SMOSTWV.model", "path":”/C:/Users/Fabio/Desktop/jboss-as- 7.1.1.Final/standalone/deployments/Smarty.ear/SmartyEJB.jar/SM OSTWV.model”, }] } caricaSUMdaDatabase
Nome del Servizio
caricaSUMdaDatabase
Descrizione
Viene letto il file contenente i parametri per il caricamento dei tweet da database: UploadTweetFromDB.xml, presente all'intero della cartella /bin del server Jboss e viene restituito una lista dei tweet caricati da database che corrispondono ai parametri specificati. Il riempimento di tale file di configurazione è a cura dell'amministratore del modulo classificazione e deve specificare i seguenti parametri:
<ITEM KeyWord1="Traffico" KeyWord2="" KeyWord3=""...KeyWordN=""> <DESCR>KeyWords</DESCR> </ITEM> <ITEM SearchOperation="AND"> <DESCR>Operation</DESCR> </ITEM>
<ITEM FullAddress="Via Diotisalvi 1, Pisa" Radius="200" Measure="Km">
<DESCR>GeoLocation</DESCR> </ITEM>
<ITEM Date="2014-02-10" Time="02:00:00"> <DESCR>DateTime</DESCR>
</ITEM>
</Search_Parameters>
Parametri
Nome Tipo Descrizione
- - -
Valore Restituito Tipo Descrizione
String una stringa formattata in JSON che specifica l'esito dell'operazione e i risultati ottenuti. Il payload contiene una lista di oggetti SUM relativa ai sum presenti all'interno del database che soddisfano i parametri specificati
Esempio di Oggetto restituito
return (string): {"header": {"code":"200", "shortDescription":"OK", "longDescription":""}, "payload":[ {“type”: “SUM”, "id":26294, "idUtenteTwitter":"489223494365564928", "data":"2014-04-20 11:01:22.0",
"testo":”Coda per 3 km sulla Fi-Pi-Li per non so cosa, sono in coda pure io, tra pisa aurelia e pisa nord-est.”,
"lat/long":”null/null”}, {“type”: “SUM”,
"id":26243,"idUtenteTwitter":"476118739333595136", "data":"2014-04-20 09:43:35.0",
sul lavoro in una cartiera della ... via “, "lat/long":”null/null”},
}] }
creaModello
Nome del Servizio
creaModello
Descrizione
Permette la creazione di un nuovo modello di classificazione con cui classificare i tweet.
Parametri
Nome Tipo Descrizione
dataSet String Il nome del file.arff contenente
il dataset di training.
nomeDaDareAlModello String Il nome con cui sarà riferito il
modello, seguito da .model . (es. SMOtest.model)
eventoDelModello String L'evento di cui il modello
verifica o meno la presenza.
Valore Restituito Tipo Descrizione
String una stringa formattata in JSON che specifica l'esito dell'operazione e i risultati ottenuti. Il payload contiene un oggetto Modello
costruisciXMLfileParametriRicerca
Nome del Servizio
costruisciXMLfileParametriRicerca
Descrizione
Viene costruito il file xml contenente i parametri di ricerca di default utilizzato per lo scaricamento dei tweet da Twitter nei servizi esportati all'utente.
Parametri
Nome Tipo Descrizione
keyword[] String[] Lista di parole chiave separate da
virgola. (es. Traffico, Incidente)
radius Integer Valore di default del raggio con
cui viene costruito il cerchio spaziale per la ricerca dei tweet. Di default assume valore 15
measure String Specifica se l'unità di misura del
raggio è Km o Ml(miglia). Può assumere solo questi due valori. Di default è impostato a Km
Valore Restituito Tipo Descrizione
String una stringa formattata in JSON che contiene il POJO rappresentante il file xml.
Esempio di Oggetto restituito
return (string): {
"keywords[]":"Traffico, Incidente, Manifestazione", "radius":"15",
"measure":”Km”, }]
}
traduciGeoCoordinateSUM
Nome del Servizio
traduciGeoCoordinateSUM
Descrizione
Viene passato in ingresso l'id di un SUM, vengono tradotte, qualora sia necessario (ovvero non siano ancora state tradotte in indirizzo testuale) la coppia di coordinate spaziali in formato DDD relative al SUM. In uscita viene restituito il SUM, più la traduzione dell'indirizzo.
Parametri
idSUM Integer ID univoco per il riconoscimento di un SUM.
Valore Restituito Tipo Descrizione
String una stringa formattata in JSON che contiene il SUM relativo segueto dalla traduzione delle coordinate.
Esempio di Oggetto restituito
return (string): {"header": {"code":"200", "shortDescription":"OK", "longDescription":""}, "payload":[ “type”: “SUM” "id":26175, "idUtenteTwitter":"451725490710384640", "data":"2014-04-03 16:18:44.0",
"testo":"Fila chilometrica all\u0027accettazione bagagli di @aegeanairlines all\u0027aeroporto di #Roma Fiumicino...in coda da un\u0027ora...",
"latlong":"41.7951931/12.2543841"}, ],
“indirizzo tradotto”, “Roma, Grande Raccordo Anulare”, }
classificaUnSUM
Nome del Servizio
classificaUnSUM
Descrizione
Il servizio consente all'amministratore del modulo classificazione di effettuare una classificazione mirata su un determinato SUM. Come parametri d'ingresso si ha il solo IdSUM, in quanto l'amministratore ha accesso al database e può verificare gli id; come restituzione del servizio si ha una lista di SUM classificati: un SUMClassificato per ciascuno dei modelli presenti all'interno del sistema. (In pratica si verifica gli eventi che il testo del SUM identifica o meno).
Parametri
Nome Tipo Descrizione
idSUM Integer ID univoco per il riconoscimento
di un SUM.
Valore Restituito Tipo Descrizione
String una stringa formattata in JSON che specifica l'esito dell'operazione e i risultati ottenuti.L'Header specifica se l'esito dell'operazione è andato a buon fine, Il payload contiene un oggetto SUMClassificato formattato in JSON.
Esempio di Oggetto restituito
return (string): {"header": {"code":"200", "shortDescription":"OK", "longDescription":""}, "payload":[ “type”: “SUMClassificato”, "id":1012, "nomeEvento":"traffico", "valore":true, "nomeModelloUsato":"SMOTraffico.model", "latlong":"null/null"}, ], “type”: “SUMClassificato”, "id":1013, "nomeEvento":"traffico", "valore":true, "nomeModelloUsato":"SMOTraffico.model", "latlong":"42.1241931/19.2533671"}, } controllaEventiDiUnaCollezione
Nome del Servizio
controllaEventiDiUnaCollezione
Descrizione
salvata nel database, li classifica e restituisce la lista degli eventuali eventi identificati.
La politica di classificazione di eventi utilizzata nella versione attuale del servizio è la seguente:”se almeno il 20% dei tweet scaricati viene classificato come interessante per uno specifico evento, allora l'evento viene aggiunto al payload dell'oggetto restituito”.
Parametri
Nome Tipo Descrizione
IdCollezione String Id univoco che identifica i SUM appartenenti ad una determina Collezione di SUM.
visualizzaLog Boolean Se specificato a true, il servizio
restituisce anche la lista di tutti i tweet che l'hanno generato gli eventi identificati. Il valore di tale parametro è fissato a false di default.
Valore di ritorno Tipo Descrizione
String una stringa formattata in JSON che specifica l'esito dell'operazione e i risultati ottenuti. Il payload contiene una lista di oggetti EventoClassificato.(Uno per ogni evento identificato). Se il campo visualizzaLog assume valore true, allora ogni evento è restituito assieme alla lista dei tweet che lo hanno generato.
return (string): {"header": {"code":"200", "shortDescription":"OK", "longDescription":""}, "payload":[ {“type”: “EventoClassificato” "id":28, "nomeEvento":"traffico",
"dettagli":"Verifica la presenza di traffico nei Sum", "verificato":true,
"data":"2014-04-03 18:30:34",
"nomeModello":"SMOTraffico.model",
"geoIndirizzo":"Galleria Circonvallazione Settentrionale, 00166 Rome, Italy"} } {“type”: “SUM”
"id":26175,
"idUtenteTwitter":"451725490710384640", "data":"2014-04-03 16:18:44.0",
"testo":"Fila chilometrica all\u0027accettazione bagagli di @aegeanairlines all\u0027aeroporto di #Roma Fiumicino...in coda da un\u0027ora...", "latlong":"41.7951931/12.2543841"}, {“type”: “SUM” "id":26176, "idUtenteTwitter":"451725447718793216", "data":"2014-04-03 16:18:34.0",
"testo":"#A1 Traffico in congestione da Chiusi-Chianciano a Montepulciano.Velocità rilevata:35km/h", "latlong":"null/null"}, {“type”: “SUM” "id":26177, "idUtenteTwitter":"451724690244272128", "data":"2014-04-03 16:15:33.0",
"testo":"#SS7 Traffico in congestione da Innesto Ss374 Di Summonte E Montevergine a Montesarchio.Velocità rilevata:20km/h",
"latlong":"null/null"},
(VisualizzaLog = false)
return (string): {"header": {"code":"200",
"shortDescription":"OK", "longDescription":""},
"payload":[
{“type”:”EventoClassificato "id":28,
"nomeEvento":"traffico",
"dettagli":"Verifica la presenza di traffico nei Sum", "verificato":true,
"data":"2014-04-03 18:30:34"
"nomeModello":"SMOTraffico.model",
"geoIndirizzo":"Galleria Circonvallazione Settentrionale, 00166 Rome, Italy"}
] }