CONCETTI SOFIA2 maggi 2014 versine 4
1 INDICE 1 INDICE... 2 2 INTRODUZIONE... 3 2.1 OBIETTIVI ED AMBITO DEL DOCUMENTO... 3 3 COS È SOFIA2... 4 4 CONCETTI DELLA PIATTAFORMA SOFIA2... 6 4.1 SMART SPACE... 6 4.2 SIB (SEMANTIC INFORMATION BROKER)... 6 4.3 KP (KNOWLEDGE PROCESSOR)... 7 4.4 SSAP (SMART SPACE ACCESS PROTOCOL)... 7 4.5 ONTOLOGIE... 8 Cncetti SOFIA2 Pagina 2/11
2 Intrduzine 2.1 Obiettivi ed ambit del dcument Quest dcument descrive i cncetti di base della piattafrma Sfia2. Cncetti SOFIA2 Pagina 3/11
3 Cs è Sfia2 Sfia2 nasce da un prgett di ricerca eurpea che si chiama SOFIA. SOFIA è l acrnim di SMART OBJECTS FOR INTELLIGENT APPLICATIONS: è una piattafrma che nasce cme prgett di ricerca Artemis di tre anni, terminat nel marz 2012, cui hann pres parte 19 partner di quattr paesi eupei, cme Nkia, Philips, Fiat, Accina e Indra. SOFIA è un architettura middleware, ssia permette l interperabilità fra sistemi e dispsitivi diversi. Mette a dispsizine di applicazini intelligenti infrmazini sul mnd reale (Internet f Things). SOFIA è: Open-surce Multipiattafrma: dispnibile per Windws, Andrid, Linux, ios, Multilinguaggi: prtabile su Java, Javascript, C++, Arduin Indipendente dal prtcll di cmunicazine: implementazini TCP, MQTT, HTTP (REST e WebServices), Ajax Push, Il su scp è ttenere l interperabilità fra applicazini che cndividn cncetti semantici. Al termine del prgett Artemis, Indra ha cntinuat a sviluppare il prgett SOFIA trasfrmandl in una piattafrma di carattere cmmerciale: Sfia2 Sfia2 punta su queste aree: Adattament alle esigenze di business: funzinament in alta dispnibilità cn datacenter distribuiti L peratività sulla piattafrma è stata semplificata, specialmente per: Svilupp delle ntlgie (rendendle più leggere) Linguaggi di ricerca. Prtcll SSAP: implementazine JSON ltre all standard XML. Cncetti SOFIA2 Pagina 4/11
Interfaccia Big Data (Hadp) per l immagazzinament di grandi vlumi di dati e datawarehusing. Capacità di integrazine cn i back-end mediante prtclli standard cme i web service Cncett di plug-in per ampliare il SIB (Semantic Infrmatin Brker) Memrizzazine e cnsultazine integrata di GIS (Gegraphic Infrmatin Services) Aggiunta cme plug-in di meccanismi di sicurezza. Interfacce REST per cnnettersi semplicemente da smartphnes, dispsitivi, applicazini RIA etc. Cncetti SOFIA2 Pagina 5/11
4 Cncetti della Piattafrma Sfia2 La Piattafrma Sfia2 si basa su questi quattr cncetti: Smart Space SIB KP SSAP 4.1 Smart Space E l ambit virtuale in cui più applicazini interagiscn per ffrire una funzinalità cmpleta. Il nucle di un Smart Space è il SIB. In un Smart Space in genere esite un sl SIB (può essere un cluster), anche se in alcuni casi esistn federazini di SIB. Gli Smart Spaces pssn cmunicare fra lr stabilend relazini di trust. 4.2 SIB (Semantic Infrmatin Brker) E il nucle della Piattafrma. Riceve, calcla e immagazzina tutte le infrmazini delle applicazini cnnesse alla piattafrma SOFIA2, funzinand cme Bus di Interperabilità. In ess si rispecchian tutti i cncetti del dmini (ssia l ntlgia) e il lr stat attuale (ssia le istanze delle ntlgie). SOFIA2 usa JSON per l scambi di infrmazini (SSAP) e per la definizine delle ntlgie. {"bdy": "{"query":"{sensrhumedad.medida:{$gt:18"", "directin":"request", Cncetti SOFIA2 Pagina 6/11
"ntlgy":"sensrhumedad", "messagetype":"query", "messageid":121, "sessinkey":"88bf5ee7-84d4-4956-98a3-ff290222fd64" Esistn implementazini in vari linguaggi e su varie piattafrme. Indra frnisce un SIB JEE che gira su qualunque Web Server (Tmcat, JBss, ). Il Gateway supprta i prtclli di cmunicazine TCP/IP, HTTP, REST, Bluetth e ZigBee. Offre cnnettri per cmunicazini fra clients: REST: per clients Javascript, smartphnes, etc. MQTT per cmunicazini bidirezinali e dispsitivi limitati Web Services/JMS per applicazini industriali Altri prtclli cme Bluetth, ZigBee etc. SIB è estensibile mediante plugin. 4.3 KP (Knwledge Prcessr) Mdella gnuna delle applicazini che interagiscn nell Smart Space mediante il SIB. Ogni applicazine lavra cn le istanze dei cncetti rilevanti del dmini (ntlgie) per cui sn prgettate. Implementazini in vari linguaggi cme Java, Javascript, Arduin, etc. Ci sn tre tipi di KP: Prducer: KP che inserisce infrmazine nel SIB. Cnsumer: KP che recupera infrmazine dal SIB. Prsumer: KP che inserisce e recupera infrmazini dal SIB. In SOFIA2 l invi dei messaggi SSAP è implementat in JSON, perché più legger e quindi adeguat ai dispsitivi embedded. 4.4 SSAP (Smart Space Access Prtcl) E il linguaggi di messaggeria standard per le cmunicazini fra il SIB e i KPs. Il linguaggi è indipendente dalla rete sttstante (GPRS, 3G, WIFI, BlueTth, HFC, ZigBee) Ne esistn due implementazini: SSAP-XML: frmat XML (miglire ampiezza di banda) Cncetti SOFIA2 Pagina 7/11
SSAP-JSON: messaggi adattati a quest prtcll, cncepit per le cmunicazini cn i dispsitivi mbili, i navigatri, etc. I messaggi sn di tre tipi: REQUEST: ssia una richiesta inviata dal KP al SIB. RESPONSE: ssia la rispsta del SIB vers il KP crrispndente all arriv di un messaggi REQUEST. INDICATION: ssia una ntifica inviata dal SIB al KP prima del verificarsi di un event al quale il KP è iscritt. Le perazini mediante le quali il SIB e i KPs interagiscn sn: JOIN: cnnessine di un KP a un SIB (implica autentificazine, autrizzazine e la creazine di una sessine nell Smart Space) LEAVE: discnnessine di un KP dal SIB SIB INSERT/UPDATE/DELETE: permette ai KPs l /inserzine/mdifica/cancellazine di infrmazine nel SIB QUERY: permette ai KPs di recuperare infrmazine dal SIB dalle basi dati relative al Temp Reale dell Stric. SUBSCRIBE: permette ai KPs di iscriversi all esecuzine di una cnsultazine riguard l stat del SIB gni tt secndi al verificarsi di un event nel SIB INDICATION: segnalazine di riscntr in seguit ad un perazine di subscribe, è inviata dal SIB ai KPs. UNSUBSCRIBE: cancella un perazine di subscribe. CONFIG: permette al KP di richiedere i parametri di cnfigurazine relativi alla sua istanza. Ntifiche di cambiament di stat dal SIB ai KP che si sn iscritti (perazine SUBSCRIBE) ad una data ntifica di cambi di stat. 4.5 Ontlgie Le ntlgie sn descrizini semantiche di un insieme di classi, esse rappresentan le entità del sistema. In SOFIA2 le ntlgie sn rappresentate nel frmat JSON-Schema, per esempi un ntlgia che usa un KP per rappresentare un sensre di temperatura si rappresenta csì: "SensrTemperatura": { "crdenadagps": { "altitud": 0, "latitud": 40.512274, Cncetti SOFIA2 Pagina 8/11
"lngitud": -3.675679 "identificadr": "S_Temperatura_00001", "medida": 19, "timestamp": 1373887443001, "unidad": "C" Le ntlgie JSON vengn scaricate nella piattafrma ed esiste un JSON Schema che serve a validare le infrmazini semantiche che arrivan dalle KP secnd le regle dell ntlgia: Per trnare all esempi precedente dell ntlgia SensrTemperatura, il JSON Schema che la valida è: { "$schema": "http://jsn-schema.rg/draft-03/schema#", "title": "SensrTemperatura Schema", "type": "bject", "prperties": { "_id": { "type": "bject", "$ref": "#/identificadr" "SensrTemperatura": { "type": "string", "$ref": "#/dats" "identificadr": { "title": "id", "descriptin": "Id insertad del SensrTemperatura", "type": "bject", "prperties": { "$id": { "type": "string", "required": false "dats": { "title": "dats", "descriptin": "Inf SensrTemperatura", "type": "bject", "prperties": { "identificadr": { "type": "string", "timestamp": { "type": "integer", "minimum": 0, "medida": { "type": "number", Cncetti SOFIA2 Pagina 9/11
"unidad": { "type": "string", "crdenadagps": {, "$ref": "#/gps" "gps": { "title": "gps", "descriptin": "Gps SensrTemperatura", "type": "bject", "prperties": { "altitud": { "type": "number", "required": false "latitud": { "type": "number", "lngitud": { "type": "number", "additinalitems": false Quand un ntlgia è cnservata nella BDTR (Base Dati in Temp Reale) la piattafrma l arricchisce cn le meta-infrmazini relative al cntest d us dell ntlgia. Nell esempi questa infrmazine è in giall: { "_id": { "$id": "51e3dbd465701fd8e0f69828" "cntextdata": { "sessin_key": "08bf50c8-6ea6-41dc-99ac-5d12a6f517a3", "user_id": 1, "kp_id": 9, "kp_identificadr": "gatewaysensres", "timestamp": "1373887444356" "SensrTemperatura": { "crdenadagps": { "altitud": 0, "latitud": 40.512274, "lngitud": -3.675679 "identificadr": "S_Temperatura_00001", "medida": 19, "timestamp": 1373887443001, "unidad": "C" Cncetti SOFIA2 Pagina 10/11
Nel cntextdata sn riprtati la chiave della sessine stabilita fra KP e SIB, l identificatre dell utente che usa il KP, l identificazine del KP, l identificatre dell istanza di KP che è cnnessa e il timestamp dell inserzine dell infrmazine. Cncetti SOFIA2 Pagina 11/11