-
Notifications
You must be signed in to change notification settings - Fork 13
/
publiccode.yml
166 lines (147 loc) · 7.6 KB
/
publiccode.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
# This repository adheres to the publiccode.yml standard by including this
# metadata file that makes public software easily discoverable.
# More info at https://github.com/italia/publiccode.yml
publiccodeYmlVersion: '0.2'
applicationSuite: Stack4Things
categories:
- communications
- data-collection
- it-management
- cloud-management
- data-visualization
- event-management
description:
it:
apiDocumentation: 'http://stack4things.unime.it/iotronic-api-docs/'
documentation: 'https://github.com/MDSLab/s4t-iotronic-standalone'
features:
- IoT Management
- Fleet IoT Management
genericName: IoTronic
localisedName: S4T
longDescription: >
Stack4Things è un framework per l'Internet of Things sviluppato dal Mobile
and Distributed Systems Lab (MDSLab), un laboratorio del dipartimento di
Ingegneria dell'Università di Messina. Stack4Things è un progetto
open-source che aiuta a gestire le flotte di dispositivi IoT senza
preoccuparsi della loro posizione fisica, della loro configurazione di
rete, della tecnologia sottostante. Si tratta di una soluzione orizzontale
orientata al Cloud (che può essere integrata con OpenStack) che fornisce
la virtualizzazione, la personalizzazione e l'orchestrazione degli oggetti
dell'internet degli oggetti. Stack4Things fornisce un'esperienza
"out-of-the-box" su diversi dei più popolari sistemi embedded e mobili.
Stack4Things coinvolge due componenti principali: il servizio IoTronic e
la sonda Lightning-rod. IoTronic è il servizio Cloud-side che permette
agli utenti di gestire le risorse dell'internet degli oggetti.
Lightning-rod è la sonda IoT-side che funge da controparte IoTronic che
collega il dispositivo al Cloud. Entrambi i componenti sono implementati
in Node.js. Stack4things nella sua versione standalone è solo parzialmente
integrato con OpenStack (può utilizzare il servizio Neutron come back-end
per la gestione della rete). Questa versione è stata implementata
principalmente per motivi di ricerca. Per la versione standalone è
disponibile anche una bozza di dashboard Web.
Stack4Things è un IaaS dedicato all’IoT capace di esporre delle REST API
che permettano la gestione di device IoT denominati all’interno del
framework come “board”. La struttura di tale sistema è conforme a quella
dei servizi sviluppati all’interno di OpenStack a cui per l’appunto si può
interfacciare per il suo funzionamento. L’architettura del sistema si
concentra sulla comunicazione tra gli user e i nodi IoT. Il sistema è
caratterizzato da due entità S4T IoTronic (parte Cloud
dell’infrastruttura) e S4T lightning-rod (lato IoT dell’infrastruttura).
Questo sistema consente di realizzare varie azioni volte alla gestione di
dispositivi IoT, come:
● la Gestione di Board – registrazione, cancellazione, invio di comandi -
● Plugin – iniettare pezzi di codice custom da fare eseguire sulla Board
● Servizi – Permettere di accedere a servizi installati su una Board
● Virtual Network – organizzare reti interne tra board
● Web Service – Espone servizi http sulle Board in modo sicuro con
encription e2e
In particolare il sistema dal lato della board esegue direttamente sul MPU
ed interagisce con gli strumenti del S.O. ed i servizi della board, ovvero
avrà accesso ai sensori e agli attuatori forniti dal dispositivo
attraverso i pins di I/O. Lightning-rod rappresenta il punto di contatto
tra la scheda e il Cloud, permettendo all’user di pilotare la scheda anche
se essa è posta dietro un firewall molto restrittivo o un sistema di
Natting. La comunicazione viene assicurata attraverso WAMP. La controparte
lato Cloud, che abbiamo detto essere il servizio IoTronic di Stack4Things
è implementato secondo gli standard dei servizi OpenStack, al fine di
fornire la possibilità di gestire uno o più dispositivi IoT remoti.
L’architettura di Stack4Things lato Cloud si basa su un servizio
(compatibile anche con la piattaforma OpenStack) chiamato IoTronic. Gli
obiettivi principali di IoTronic consistono nella gestione delle risorse
di sensing e di attuazione, vale a dire che tale sistema consente
l'implementazione del paradigma SAaaS. IoTronic è caratterizzato
dall'architettura standard di un servizio OpenStack. Il modulo IoTronic
conductor rappresenta il nucleo del servizio, gestendo il database
IoTronic, Stack4Things che memorizza tutte le informazioni necessarie (ad
esempio identificatori unici, associazione con utenti e tenant, proprietà
della scheda e caratteristiche hardware / software), nonché procedura
remota di invio chiama tra gli altri componenti. Le IoTronic API espongono
un'interfaccia REST per gli user, permettendo loro di interagire con il
servizio sia tramite un client personalizzato (client di riga di comando)
che tramite un browser Web. Analogamente, l'agente IoTronic WAMP controlla
il router WAMP(realizzato con Crossbar) e funge da ponte tra altri
componenti e le schede; esso inoltre ha il compito di tradurre i messaggi
AMQP in messaggi WAMP e viceversa. AMQP, è un protocollo a livello di
applicazione standard aperto per middleware orientato ai messaggi, un bus
con orientamento dei messaggi, accodamento, instradamento (compresi
point-to-point e publish-subscribe), affidabilità e sicurezza. Seguendo la
filosofia standard di OpenStack, tutta la comunicazione tra i componenti
IoTronic viene eseguita in rete tramite una coda AMQP. Ciò consente a
tutta l'architettura di essere il più scalabile possibile dato che tutti i
componenti possono essere implementati su macchine diverse senza influire
sulle funzionalità del servizio, oltre al fatto che più di un agente WS
tunnel di IoTronic e più di un agente WAMP possono essere istanziati,
facendo si che ognuno dei quali si occupi di un sottoinsieme dei
dispositivi IoT. In questo modo, sono garantiti anche la ridondanza e
l'alta disponibilità. La scelta dell’utilizzo di WAMP fornisce al sistema
di messaggistica base AMQP di Openstack le funzioni di RPC (Remote
Procedure Calls), oltre che essendo un sotto-protocollo delle WebSocket si
adatta bene all’interazione con le WebSocket usata nelle comunicazioni con
i dispositivi IoT.
shortDescription: >-
IoTronic è utilizzato al fine di gestire dispositivi IoT, fornendo la
possibilità di gestire tali dispositivi durante il loro ciclo vitale
developmentStatus: stable
it:
conforme:
gdpr: false
lineeGuidaDesign: false
misureMinimeSicurezza: false
modelloInteroperabilita: true
countryExtensionVersion: '0.2'
piattaforme:
anpr: false
cie: false
pagopa: false
spid: false
riuso:
codiceIPA: udsm_me
landingURL: 'http://stack4things.unime.it/'
legal:
license: Apache-2.0
mainCopyrightOwner: MDSLAB
repoOwner: MDSLAB
localisation:
availableLanguages:
- en
localisationReady: false
maintenance:
contacts:
- affiliation: Università degli Studi di Messina
email: [email protected]
name: Giovanni Merlino
contractors:
- name: smartme.IO
until: '2022-08-06'
type: internal
name: IoTronic
platforms:
- linux
- web
releaseDate: '2019-07-03'
softwareType: standalone/web
softwareVersion: 2.3.6
url: 'https://github.com/MDSLab/s4t-iotronic-standalone.git'
usedBy:
- Comune di Torino