Actions on Google e Alexa skills per .NET loversLorenzo Giudici
Evento #Aperitech 05/11/2019 organizzato da Codemotion.
Ospite: la community di Milano Chatbots con 5 talk per illustrare lo stato dell'arte dei chatbot e dei voicebot.
1° Talk tecnico:
"Google Home", "Alexa", "Skills", "Smart speaker"… ne sentiremo parlare (tanto) anche nel 2020 e noi sviluppatori .NET possiamo cavalcare l'onda perchè abbiamo tutti gli strumenti e le competenze necessarie.
VIDEO: https://youtu.be/tboHO_mj2uM
Xamarin.Forms is a framework for building cross-platform applications that share most of the UI codebase among the UWP, iOS and Android platforms. Due to the higher level of abstraction compared to Xamarin.Native, Xamarin.Forms applications may suffer from memory leaks and slow rendering times at the expense of the final user experience. In the session, we will explore the mechanisms used by Xamarin.Forms to translate abstract UI components into native ones, highlight with demos what are the main bottlenecks met by developer, how to solve them and get close to native performances.
Actions on Google e Alexa skills per .NET loversLorenzo Giudici
Evento #Aperitech 05/11/2019 organizzato da Codemotion.
Ospite: la community di Milano Chatbots con 5 talk per illustrare lo stato dell'arte dei chatbot e dei voicebot.
1° Talk tecnico:
"Google Home", "Alexa", "Skills", "Smart speaker"… ne sentiremo parlare (tanto) anche nel 2020 e noi sviluppatori .NET possiamo cavalcare l'onda perchè abbiamo tutti gli strumenti e le competenze necessarie.
VIDEO: https://youtu.be/tboHO_mj2uM
Xamarin.Forms is a framework for building cross-platform applications that share most of the UI codebase among the UWP, iOS and Android platforms. Due to the higher level of abstraction compared to Xamarin.Native, Xamarin.Forms applications may suffer from memory leaks and slow rendering times at the expense of the final user experience. In the session, we will explore the mechanisms used by Xamarin.Forms to translate abstract UI components into native ones, highlight with demos what are the main bottlenecks met by developer, how to solve them and get close to native performances.
DotNetCampus - Continuous Integration con Sql ServerAlessandro Alpi
Continuous Integration con SQL Server. Come automatizzare i processi di build e di test su database SQL Server. Come includere SQL Server nei processi di Application Lifecycle Management (Database Lifecycle Management).
APPSTUDIO: DA ZERO ALLO STORE IN 50 MINUTI!DotNetCampus
AppStudio e' un ambiente RAD web based per lo sviluppo di Universal App (Windows Phone 8.1 e Windows 8.1) per la visualizzazioni di sorgenti dati. In questa sessione vedremo come sia facile realizzare da zero un'app che acceda a sorgenti remote e come sia, infine, possibile personalizzare il codice sorgente per poter implementare le proprie personalizzazioni.
Intelligenza artificiale nel mondo front-end - CodeGen2021Michele Aponte
Le applicazioni dell'intelligenza artificiale sono tantissime e ci permettono di andare a risolvere specifici problemi per dare valore alle nostre soluzioni: proviamo a immaginare una nuova User eXperience per le nostre applicazioni business che vada oltre pagine e forms e che sfrutti nuove tipologie di interazioni rese possibili dalle applicazioni della IA.
Dependency injection questa sconosciutaAndrea Dottor
L'uscita di ASP.NET Core ha portato a una maggiore diffusione dell'utilizzo della DI (Dependency Injection) ma spesso senza che lo sviluppatore sappia la sua reale utilità o potenzialità.
Dependency Injection, uno dei design pattern della programmazione OOP. Una best-practice dello sviluppo che può portare alla semplificazione del codice scritto, facilitare il disacoppiamento, e migliorare la testabilità.
In questa sessione vedremo cos'è la DI e come utilizzarla intelligentemente all'interno dei nostri progetti.
Slide dell'evento "XE One Day - Good code" tenuto il 15.09.2018.
Il codice è disponibile alla pagina dell'evento https://www.xedotnet.org/eventi/one-day-good-code/
70-485: ADVANCED OF DEVELOPING WINDOWS STORE APPS USING C#DotNetCampus
Visto il successo dello scorso anno, anche quest’anno il DotNetCampus ospita un Cert Path dedicato a chi vuole avvicinarsi al mondo delle certificazioni di prodotto e di tecnologia Microsoft. Microsoft, così come altre importanti aziende sul mercato, propone diversi percorsi di certificazione che ognuno può intraprendere, anche in autonomia, per guadagnare competenza e ottenere un riconoscimento. Una certificazione è generalmente un titolo che si ottiene dopo uno o più esami conseguiti con successo in un centro di formazione abilitato. Nel Cert Path vogliamo spiegarvi come affrontare alcuni esami di base per ottenere il titolo di MCP (Microsoft Certified Professional).
Windows azure - abbattere tempi e costi di sviluppoAndrea Dottor
In questa sessione vedremo come utilizzare Windows Azure per velocizzare e semplificare la realizzazione di applicazioni ASP.NET. Dallo sviluppo al deploy, passando per lo storage...andremo in dettaglio su varie funzionalità che ci faranno apprezzare ancora più la piattaforma Windows Azure.
Sessione per NetCampus 2015. La diffusione sempre più ampia di applicazioni sviluppate interamente in HTML5 e JS richiede l'adozione di processi di automazione per la fase di build, testing e rilascio. In questa sessione vedremo quali sono i principali strumenti a nostra disposizione per semplificare queste fasi dello sviluppo.
ARCHITETTURA DI UN'APPLICAZIONE SCALABILEDotNetCampus
Questa sessione tratterà delle implementazioni di architetture robuste e scalabili, in scenari di sviluppo applicativi rientranti nella tipologia dei Software as a Service. In particolare vedremo come accopiare le feature e le necessità del SaaS con servizi propri presenti su Azure; con focus su web, servizi mobili, data, e notification.
Async: scalabilità e responsiveness senza pari! @ CDaysMatteo Baglini
Per ottenere applicazioni scalabili con un consumo minimo di risorse e una UI sempre reattiva,
dobbiamo scrivere software che opera in maniera asincrona.
In questa sessione vedremo perchè è importante sfruttare questo tipo di programmazione e
quali strumenti mette a disposizione il .NET Framework.
http://www.communitydays.it/events/communitydays-2013/misc04/
Sviluppo di soluzioni embedded moderne con .NET Micro Framework by Lorenzo Ma...Codemotion
In questo Talk verrà presentata una tra le più moderne e produttive piattaforme di sviluppo embedded attualmente esistenti: il .NET Micro Framework di Microsoft (.NETMF).
Internet è cresciuto in maniera esponenziale passando dalle poche migliaia di collegamenti a qualche miliardo di persone connesse in tutto il mondo. Smart Business, Smart Home, Wearable, Smart City. Tutto si fa più veloce e “smart”. Quali sono gli effetti principali? Quali i vantaggi? Quali le sfide?
Per maggiori approfondimenti: http://issuu.com/sarascotti/docs/iot
DotNetCampus - Continuous Integration con Sql ServerAlessandro Alpi
Continuous Integration con SQL Server. Come automatizzare i processi di build e di test su database SQL Server. Come includere SQL Server nei processi di Application Lifecycle Management (Database Lifecycle Management).
APPSTUDIO: DA ZERO ALLO STORE IN 50 MINUTI!DotNetCampus
AppStudio e' un ambiente RAD web based per lo sviluppo di Universal App (Windows Phone 8.1 e Windows 8.1) per la visualizzazioni di sorgenti dati. In questa sessione vedremo come sia facile realizzare da zero un'app che acceda a sorgenti remote e come sia, infine, possibile personalizzare il codice sorgente per poter implementare le proprie personalizzazioni.
Intelligenza artificiale nel mondo front-end - CodeGen2021Michele Aponte
Le applicazioni dell'intelligenza artificiale sono tantissime e ci permettono di andare a risolvere specifici problemi per dare valore alle nostre soluzioni: proviamo a immaginare una nuova User eXperience per le nostre applicazioni business che vada oltre pagine e forms e che sfrutti nuove tipologie di interazioni rese possibili dalle applicazioni della IA.
Dependency injection questa sconosciutaAndrea Dottor
L'uscita di ASP.NET Core ha portato a una maggiore diffusione dell'utilizzo della DI (Dependency Injection) ma spesso senza che lo sviluppatore sappia la sua reale utilità o potenzialità.
Dependency Injection, uno dei design pattern della programmazione OOP. Una best-practice dello sviluppo che può portare alla semplificazione del codice scritto, facilitare il disacoppiamento, e migliorare la testabilità.
In questa sessione vedremo cos'è la DI e come utilizzarla intelligentemente all'interno dei nostri progetti.
Slide dell'evento "XE One Day - Good code" tenuto il 15.09.2018.
Il codice è disponibile alla pagina dell'evento https://www.xedotnet.org/eventi/one-day-good-code/
70-485: ADVANCED OF DEVELOPING WINDOWS STORE APPS USING C#DotNetCampus
Visto il successo dello scorso anno, anche quest’anno il DotNetCampus ospita un Cert Path dedicato a chi vuole avvicinarsi al mondo delle certificazioni di prodotto e di tecnologia Microsoft. Microsoft, così come altre importanti aziende sul mercato, propone diversi percorsi di certificazione che ognuno può intraprendere, anche in autonomia, per guadagnare competenza e ottenere un riconoscimento. Una certificazione è generalmente un titolo che si ottiene dopo uno o più esami conseguiti con successo in un centro di formazione abilitato. Nel Cert Path vogliamo spiegarvi come affrontare alcuni esami di base per ottenere il titolo di MCP (Microsoft Certified Professional).
Windows azure - abbattere tempi e costi di sviluppoAndrea Dottor
In questa sessione vedremo come utilizzare Windows Azure per velocizzare e semplificare la realizzazione di applicazioni ASP.NET. Dallo sviluppo al deploy, passando per lo storage...andremo in dettaglio su varie funzionalità che ci faranno apprezzare ancora più la piattaforma Windows Azure.
Sessione per NetCampus 2015. La diffusione sempre più ampia di applicazioni sviluppate interamente in HTML5 e JS richiede l'adozione di processi di automazione per la fase di build, testing e rilascio. In questa sessione vedremo quali sono i principali strumenti a nostra disposizione per semplificare queste fasi dello sviluppo.
ARCHITETTURA DI UN'APPLICAZIONE SCALABILEDotNetCampus
Questa sessione tratterà delle implementazioni di architetture robuste e scalabili, in scenari di sviluppo applicativi rientranti nella tipologia dei Software as a Service. In particolare vedremo come accopiare le feature e le necessità del SaaS con servizi propri presenti su Azure; con focus su web, servizi mobili, data, e notification.
Async: scalabilità e responsiveness senza pari! @ CDaysMatteo Baglini
Per ottenere applicazioni scalabili con un consumo minimo di risorse e una UI sempre reattiva,
dobbiamo scrivere software che opera in maniera asincrona.
In questa sessione vedremo perchè è importante sfruttare questo tipo di programmazione e
quali strumenti mette a disposizione il .NET Framework.
http://www.communitydays.it/events/communitydays-2013/misc04/
Sviluppo di soluzioni embedded moderne con .NET Micro Framework by Lorenzo Ma...Codemotion
In questo Talk verrà presentata una tra le più moderne e produttive piattaforme di sviluppo embedded attualmente esistenti: il .NET Micro Framework di Microsoft (.NETMF).
Internet è cresciuto in maniera esponenziale passando dalle poche migliaia di collegamenti a qualche miliardo di persone connesse in tutto il mondo. Smart Business, Smart Home, Wearable, Smart City. Tutto si fa più veloce e “smart”. Quali sono gli effetti principali? Quali i vantaggi? Quali le sfide?
Per maggiori approfondimenti: http://issuu.com/sarascotti/docs/iot
Internet of Things: mercato, tecnologie, applicazioni e competenzeArmando Martin
Oggi l’Internet delle cose è un paradigma tecnologico in cui la comunicazione è estesa all’interazione tra uomini, dispositivi e sottosistemi. L’Internet delle cose è un insieme
di tecnologie digitali che vanno dai tag RFId alle reti di sensori, dalle superfici touch alla realtà aumentata, dai sistemi logistici integrati alle infrastrutture in chiave di sostenibilità
My session about Microsoft Application Insights at "DevOps@Work 2016" event, managed by DomusDotNet and GetLatestVersion communities and hosted in Microsoft Rome's building, on February 5th, 2016
Aware of the great potential that is developing around the Internet of Thing, Satiz TPM has conceived and given birth to IOTEXPO, the first digital Virtual Expo Made in Italy that maps, catalogs and certifies all companies in the country and in the European basin that adopt solutions, develop projects, services and products based on the IOT paradigm. Scope: to create a large relational platform for the creation of a business community on all the topics of the Internet of Things, that provides IOT state of the art visibility, thanks to a digital cross-media communication campaign.
www.iotexpo.it
DevOps@Work 2017 - Application insights more control, more powerRoberto Albano
Session about Microsoft Application Insights at "DevOps@Work 2017" event, managed by DomusDotNet community and hosted in Microsoft Rome's headquarter on February 10th, 2017.
The session is related to the product's presentation, configuration and integration using the available SDK.
Descrizione delle principali tecnologie abilitanti alla gestione dei Big Data, con particolare attenzione all’ecosistema che gravita intorno al framework Hadoop di Apache.
LA QUARTA RIVOLUZIONE INDUSTRIALE: PERSONE, TECNOLOGIE, MODELLI | Associazione ADAPT Francesco Seghezzi Responsabile della Comunicazione e delle Relazioni Esterne
Gli effetti di Industry 4.0 si stanno diffondendo in modo reticolare impattando in tutti i settori dell’economia e aprendo spazio a nuovi possibili scenari di gestione delle Risorse Umane.
Atti del Workshop NUOVO RINASCIMENTO 4.0
Celebrating 20years BB Anniversary | ETAss Business Birthday
16 Settembre 2016
www.etass.it - 0362.231231 - info@etass.it
Laureato in Ingegneria Elettronica con una tesi redatta in collaborazione con Volkswagen, Università di Brauschweig e Università di Cagliari. Fino a fine 2001 è stato Ufficiale del Genio dell’Aeronautica Militare, come capo sez. avionica della DTL Eurofighter 2000.Dal 2013 è Direttore Ricerca e Sviluppo di Abinsula e le sue principali attività sono quelle di trovare e identificare nuove aree tecnologiche di investimento e creare ed estendere il network con aziende, centri di ricerca e università.
Inoltre è tra i founder di alcune startup in ambito sharing economy e Internet of Things quali Greenshare, Clacsoon e Lifely.
DevOps@Work 2017 - Azure Mobile EngagementRoberto Albano
Session about Microsoft Azure Mobile Engagement at "DevOps@Work 2017" event, managed by DomusDotNet community and hosted in Microsoft Rome's headquarter on February 10th, 2017.
The session is related to the product's presentation, configuration and integration using the available SDK.
Finalmente la soluzione IoT che semplifica la connettività dei sistemi d’automazione, pensata per acquisire i tuoi dati e gestirli al meglio la Business Analytics. Progea Cloud.Databoom offre le migliori soluzioni per interconnettere i tuoi sistemi d’automazione, portando i dati dall’impianto al Cloud sfruttando la connettività dell’ Industrial Internet of Things (IIoT), per raccogliere le informazioni essenziali al tuo business, registrarle su DB NoSQL ed analizzarle in modo incredibilmente facile utilizzando Web Dashboard completamente personalizzabili.
L'Internet of Things è una realtà e primo o dopo avrà il suo impatto significativo nelle nostre aziende.
E a quel punto, i device saranno un asset di cui gestire il lifetime, alla pari dei nostri server, reti e cloud.
Azure IoT è la piattaforma su cui possiamo sviluppare la nostra soluzione IoT e cerchiamo di comprendere cosa significa amministrare un parco device.
Alcuni temi: protocolli di comunicazione e sicurezza del device e della comunicazione. Provisioning dei device. Gestione e monitoraggio dei dispositivi. Strumenti ed API a disposizione per l'IT Pro.
AskQ Call Management System: uno strumento completo per la gestione delle chiamate e delle richieste di servizio.
Disegnato per una gestione remota e centralizzata, risponde perfettamente alla crescente richiesta di utilizzo di strumenti e servizi professionali senza acquisirne l’infrastruttura. Tutte le operazioni di mantenimento, backup e aggiornamento tecnologico sia hardware che software sono gestite centralmente dal team di supporto e sviluppo.
Power BI Streaming Data Flow e Azure IoT CentralMarco Parenzan
Dal 2015 gli utilizzatori di Power BI hanno potuto analizzare dati in real-time grazie all'integrazione con altri prodotti e servizi Microsoft. Con streaming dataflow, si porterà l'analisi in tempo reale completamente all'interno di Power BI, rimuovendo la maggior parte delle restrizioni che avevamo, integrando al contempo funzionalità di analisi chiave come la preparazione dei dati in streaming e nessuna creazione di codice. Per vederlo in funzione, studieremo un caso specifico di streaming come l'IoT con Azure IoT Central.
Power BI Streaming Data Flow e Azure IoT Central Marco Parenzan
Dal 2015 gli utilizzatori di Power BI hanno potuto analizzare dati in real-time grazie all'integrazione con altri prodotti e servizi Microsoft. Con streaming dataflow, si porterà l'analisi in tempo reale completamente all'interno di Power BI, rimuovendo la maggior parte delle restrizioni che avevamo, integrando al contempo funzionalità di analisi chiave come la preparazione dei dati in streaming e nessuna creazione di codice. Per vederlo in funzione, studieremo un caso specifico di streaming come l'IoT con Azure IoT Central.
Connext è un I/O Server in grado di gestire numerosi protocolli di comunicazione e interconnettere i diversi livelli di fabbrica IT e OT grazie alla tecnologia OPC UA. Connext è un OPC UA Server che supporta una grande quantità di protocolli, sia di tipo industriale che per infrastrutture ed edifici. Supporta funzionalità evolute come Gateway, Historian/Data Loggers, Ridondanza, OPC UA Server e Client, protocolli IIoT e molto altro ancora. E’ la soluzione ideale per ogni esigenza di connettività, sia M2M che tra i livelli di fabbrica IT e OT.
Moving from Monolithic to Microservice Architecture: an OSS based stack deplo...Codemotion
Realizzare un’unica piattaforma che garantisce Omni-channel, Zero-downtime, Functional-decomposition e Auto-scaling è possibile? Vi raccontiamo un caso reale di come, utilizzando Zuul, Eureka, SpringBoot, Docker abbiamo realizzato i desideri del cliente e attuato questa trasformazione.
Cloudup è un sistema IaaS che permette di creare uno o più server cloud, fino a 4 CPU, 16 GB di Ram, 1 TB di spazio disco.
Con Cloudup puoi aumentare o diminuire le risorse in real time. E paghi solo quello che allochi.
Se cancelli i server, non paghi più.
Empower every Azure Function to achieve more!!Massimo Bonanni
The Azure Functions seem easy to use but what if our business scenario cannot be implemented using one of the "default" triggers or bindings? "Extension" is the keyword in this case! In this session, we see how to enhance our functions with custom triggers and custom bindings to make the most of the power of Serverless.
Session delivered at ServerlessDay Warsaw on 21/10/2021.
Durable Functions vs Logic App : la guerra dei workflow!!Massimo Bonanni
Hai la necessità di implementare un workflow o un integrazione tra servizi?
Ti serve scalabilità e non vuoi preoccuparti degli aspetti infrastrutturali?
Non sai da dove iniziare?
Inizia da questa sessione! Il serverless è la risposta per la scalabilità e l'astrazione infrastrutturale, ma per l'aspetto tecnologico puoi scegliere tra Durable Functions e Logic App. Questa sessione ti mostrerà pro e contro di entrambe le tecnologie fornendoti gli strumenti necessari per una scelta oculata.
Sessione del meetup #PitchOnline di #Coding del 21/07/2021
Architetture Serverless con SQL Server e Azure FunctionsMassimo Bonanni
L'architettura serverless va sempre più di moda e innovative tecnologie come le Azure Functions ci consentono di implementarla facilmente. Come possiamo calare in questa realtà un prodotto consolidato come SQL Server che all'apparenza sembra non essere tagliato per questi scenari? In questa sessione vedremo come sfruttare SQL Server e l'estensibilità delle Azure Functions per costruire solutioni Serverless.
Sessione tenuta il 11/06/2021 a SQL Start 2021.
Serverless è una architettura basata sugli eventi e quali migliori scenari se non quelli IoT sono fondati sugli eventi? Migliaia di device che inviano telemetrie alla nostra soluzione e che dobbiamo gestire. In questa sessione vedremo un semplice approccio a scenari di questo genere che utilizza le Durable Entities per gestire la logica associata ai device del nostro sistema. Un esempio pratico per capire pregi e difetti delle Durable Entities che possono essere utili in moltissimi scenari in cui gestire eventi è essenziale.
Sessione tenuta durante Azure Global Virtual 2021.
Sessione tenuta a CodeGen 2021 il 13/02/2021
Serverless è una architettura basata sugli eventi e quali migliori scenari se non quelli IoT sono fondati sugli eventi? Migliaia di device che inviano telemetrie alla nostra soluzione e che dobbiamo gestire. In questa sessione vedremo un semplice approccio a scenari di questo genere che utilizza le Durable Entities per gestire la logica associata ai device del nostro sistema. Un esempio pratico per capire pregi e difetti delle Durable Entities che possono essere utili in moltissimi scenari in cui gestire eventi è essenziale.
The art of Azure Functions (unit) testing and monitoringMassimo Bonanni
Session provided in community meetup #PitchOnline (SharpCoding community) on 21/01/2021.
Can I implement unit tests on my Azure Functions? How can I monitor my Azure Functions in a production environment? These are the questions that born into the head of the developer immediately after realizing that the Azure Functions can be a handy tool for designing a whole range of scenarios. In this session, you learn how to implement functions that are unit testable and which is the best approach to make them monitorable.
Empower every Azure Function to achieve more!!Massimo Bonanni
Session at Microsoft Reactor Stockholm at 10/02/2021.
The Azure Functions seem easy to use but what if our business scenario cannot be implemented using one of the "default" triggers or bindings? "Extension" is the keyword in this case! In this session, we see how to enhance our functions with custom triggers and custom bindings to make the most of the power of Serverless.
The art of Azure Functions (unit) testing and monitoringMassimo Bonanni
Can I implement unit tests on my Azure Functions? How can I monitor my Azure Functions in a production environment? These are the questions that born into the head of the developer immediately after realizing that the Azure Functions can be a handy tool for designing a whole range of scenarios. In this session, you learn how to implement functions that are unit testable and which is the best approach to make them monitorable.
Session provides during Serverless Day Rome 2019.
Xmas Serverless Transformation: when the elf doesn’t scale!Massimo Bonanni
Babbo Natale è in difficoltà! E' noto che l'elfo non scala! Con l'approssimarsi del periodo natalizio, le letterine dei bimbi aumentano vertiginosamente e la gestione tradizionale presta il fianco. Babbo Natale non può pretendere che gli elfi lavorino più di quello che già fanno (il sindacato degli elfi è inflessibile) e non può delocalizzare la produzione perché si trova già in un posto sperduto! L'unica soluzione è ottimizzare e razionalizzare il processo sfruttando il cloud e l'approccio serverless: Xmas Serverless Transformation ovvero come rispondere ai picchi di carico senza sfruttare gli elfi! Slide della sessione tenuta all'evento Xmas Dev 2018.
Project Gesture & RealSense: gestures in a simple way!!
Soluzioni IoT con le tecnologie Microsoft
1.
2. Soluzioni IoT con le
tecnologie Microsoft
Massimo Bonanni
Microsoft Sr. Consultant - EMEA Modern App Domain
massimo.bonanni@microsoft.com
@massimobonanni
4. Principi fondamentali dell’architettura
• Eterogeneità: L’architettura deve essere in grado di supportare scenari di diversa natura, tipologie di device
differenti, diversi standard comunicazione e differenti logiche di business;
• Sicurezza: Le soluzioni IoT contengono una forte connessione tra mondo fisico e mondo digitale, e, nella maggior
parte dei casi, i dati che transitano sono importanti e privati. L’architettura deve mettere al primo posto il concetto
di Secutity. E’ di fondamentale importanza riuscire a costruire sistemi sicuri e protetti tenendo sotto controllo:
• Autenticazione e autorizzione sia per device che per utenti,
• Data Protection per la parte sensibile dei dati che transitano,
• Data Attestation/Retention ovvero politiche per la rimozione sicura dei dati (eventualmente sensibili)
• Scalabilità (HyperScale): In una soluzione IoT il numero dei device in gioco può essere tranquillamente un
numero a 6 zeri. L’architettura deve essere in grado di scalare facilmente da decine fino a milioni di device connessi;
• Flessibilità: L’eterogeneità dei device in gioco, il continuo cambiamento del mercato e le nuove richieste che
sempre si presentano in una soluzione IoT obblicano l’architettura ad essere quanto più flessibile. Il modello di
riferimento si basa sul concetto di componibilità della soluzione utilizzando semplici building-block e
componendoli tra loro.
6. Connettere i device
1. Connessione diretta dei device attraverso un Cloud Gateway:
Questo tipo di connessione è adatta a quei device IP-capable con possibilità di stabilire
connessione sicura attraverso la rete.
2. Connessione attraverso un field gateway:
Questa tipologia di connessione è utilizzata per:
• Device industriali che usano particolari protocolli (CoAP5, OPC)
• Dispositivi con comunicazione a corto raggio (Bluetooth, ZigBee)
• Device non in grado di stabilire una connessione di tipo TLS/SSL oppure device non
IP-Capable
Il field gateway può eseguire anche operazioni di aggregazione dei dati prima di inviarli al
Cloud Gateway.
3. Connessione attraverso un Custom Cloud Gateway:
Questa tipologia di connessione è utile nel caso di device che utilizzano un protocollo non
supportato dal Cloud Gateway e che necessitano di un operazione di “trasformazione” del
protocollo oppure per aggiungere delle operazione di pre-processamento sui dati prima
di inviarli al Cloud Gateway.
4. Connessione tra un field gateway e un custom gateway:
Questo scenario può avere senso, ad esempio, se si desidera ottenere I benefici del Field
Gateway e del Custom Gateway (aggregazione, adattamento del protocollo, etc., etc.)
utilizzando, ad esempio una communicazione VPN.
7. • Supporto a device eterogenei.
L'obiettivo è quello di consentire la comunicazione sicura, efficiente,
e affidabile tra quasi ogni tipo di dispositivo e di un gateway cloud.
• Complessità dei Device.
I dispositivi utilizzati in una soluzione IoT possono variare da
semplici sensori di temperatura a complesse linee di produzione in
fabbrica con centinaia di componenti e sensori al loro interno.
La tipologia, complessità, numero e distribuzione geografica dei
device in gioco sono fattori importanti per il dimensionamento e la
quantità di informazioni che la soluzione deve essere in grado di
gestire.
L’architettura fornisce delle linee guida neutre rispetto a questi fattori.
Device
8. Un Cloud Gateway è una parte essenziale dell’architettura IoT:
• Consente la comunicazione da e verso i device, i field gateway e i custom gateway
componenti il sistema.
• Deve essere raggiungibile in Internet o tramite una VPN o tramite una connessione
privata verso un datacenter Azure.
• Gestisce tutti gli aspetti della comunicazione da e verso i device inclusa autenticazione,
autorizzazione e monitoring.
• Tutte le comunicazioni provenienti dai device vengono mediate dal Cloud Gateway prima
di entrare all’interno della soluzione.
• Disaccoppia il produttore dei dati (i device) dal consumatore degli stessi (il backend) e
permettere a più consumatori di accedere agli stessi.
Il traffico proveniente dal back end e diretto ai device (ad esempio notifiche o comandi) è
generalmente veicolato attraverso una sorta di “casella postale” che permette di
memorizzare tale traffico anche se il device è momentaneamente irraggiungibile. In questo
contesto è possibile (e auspicabile) fornire al messaggio diretto al device un tempo di vita
dopo il quale il messaggio stesso non è più valido.
Cloud gateway
9. Entrambe le tipologie di gateway possono implementare:
• Aggregare i dati prima di inviarli al Cloud Gateway
• Eseguire conversioni di protocollo
Il Field Gateway è un componente installato «sul campo»:
• Recuperare informazioni da device locali che non sono IP-Capable e trasmetterle al Cloud Gateway
• Comandare device locali
• Fornire le funzionalità di provisioning per i device ad esso connessi
Un Field Gateway NON è un router, ha un ruolo attivo nella soluzione.
E’ necessario prestare particolare attenzione a non appesantire l’utilizzo del Custom Cloud Gateway
per non avere un collo di bottiglia nel sistema.
Field Gateway & Custom Cloud Gateway
10. Device Identity Store:
• Device Identity Authority: è l’autority per tutti i device del sistema.
Memorizza le informazioni necessarie alla validazione dei device
• Device Registry Store: è una sorta di «pagine gialle» dei device
configuratri e presenti nel sistema. A differenza dell’Identity Store, che
contiene informazioni relative alla parte di autenticazione, il Registry Store
contiene metadati relativi ai device (ad esempio targa e modello di un
veicolo è un metadato mentre la sua posizione corrente è un dato
operativo)
Device Provisioning API: insieme di API che consentono ad un device di
«presentarsi» al sistema, farsi riconoscere ed aggiornare i propri metadati.
Device State Store: è lo store che contiene I dati operative di un device
(posizione corrente di un veicolo, temperature di una stanza, etc., etc). Ogni
record presente nel registry store, generalmente ha uno o più equivalenti
record nello state store.
Device Identity, Provisioning and Store
11. • Stream Processors: flussi che muovono i dati senza
applicare alcuna trasformazione
• Analytics & Machine Learning: analisi e
trasformazione dei dati (Machine Learning)
In un’architettura complessa possono essere presenti
più flussi di dati in base alla logica di elaborazione, di
immagazzinamento o di aggregazione
Data processing and analytics
12. Lo storage è utilizzato per memorizzare dati storici
provenienti dai device e permette un analisi a posteriori
sfruttando i concetti tipici di Machine Learning.
I dati fluiscono nello store direttamente dal cloud
gateway o attraverso i flussi di stream (in maniera
puntuale o aggregata).
Gli ultimi valori dei device sono, generalmente,
mantenuti nel Device State Store.
Storage
13. La parte UX di una soluzione IoT puo’ contenere
• uno o più siti Web
• delle Web API
• applicazioni client (sia desktop che smartphone).
La parte di App Backend:
• implementa la logica di business
• implementa il livello di astrazione per i device e
eventuali gruppi di device
• gestisce la security relativa ad utenti e device e loro
relazione
UX e App Backend
14. Il livello Business Integration è responsabile
dell’integrazione della soluzione IoT con eventuali
sistemi di business esterni come ad esempio CRM, ERP
o sistemi custom LOB.
Esempio una soluzione di manutenzione predittiva
potrebbe integrarsi con il CRM per i clienti e con SAP
per la parte magazzino o la fatturazione.
Questo strato è, generalmente, implementato tramite
connettori che ricevono e scambiano comandi e dati
dallo stream processor o dalla parte di Analytics e
Machine Learning.
Business Integration
16. Azure IoT Suite è una raccolta di soluzioni preconfigurate, customizzabili e
facilmente integrabili in ambienti di business pre-esistenti che mostrano
come sia possibile implementare l’architettura vista in precedenza.
Le soluzioni proposte sono soluzioni end-to-end complete e funzionanti
che includono
• dispositivi simulati;
• servizi Azure preconfigurati, come Iot Hub, Event Hub, Stream Analytics,
Machine Learning e Azure Storage;
• console di gestione specifiche per la soluzione.
Le soluzioni contengono codice pronto per la produzione, personalizzabile
ed estendibile per scenari IoT specifici.
Il codice è disponibile su GitHub.
Azure IoT Suite
17. Il monitoraggio remoto è un'implementazione di una soluzione di monitoraggio end-to-
end per più computer in località remote.
La soluzione combina i servizi chiave di Azure per offrire un'implementazione generica
dello scenario aziendale ed è un punto di partenza per la propria implementazione.
Quando si crea una soluzione di manutenzione predittiva, viene effettuato il provisioning
dei seguenti servizi :
•1 Azure Active Directory application
•1 IoT Hub (S2 - Standard tier)
•1 DocumentDB Account (S1)
•2 Event Hubs (Basic throughput unit)
•1 Storage account (Standard-GRS)
•3 Stream Analytics jobs (1 streaming unit per job)
•1 Azure App Service Web App for Website (P1 - Premium: 2 small)
•1 Azure App Service Web App for Web jobs (S1 - Standard: 2 small) running 4 simulated devices by
default
Il codice della soluzione è disponibile su GitHub all’indirizzo
https://github.com/Azure/azure-iot-remote-monitoring
Azure IoT Suite : Monitoraggio remoto
19. • La reference architecture fornisce linee guida che debbono essere
adattate allo scenario specifico.
• La componibilità dei servizi offerti da Azure (anche di terze parti) è la
carta vincente per implementare soluzioni che si evolvono nel
tempo.
• Azure IoT Suite è un ottimo modo per capire e sperimentare una
soluzione IoT chiavi in mano che può essere facilmente adattata ad
una soluzione reale.
Take Away
20. Microsoft Azure Iot Reference Architecture (pdf)
http://aka.ms/iotrefarchpdf
//Build2016 : Azure IoT: Complete Cloud Offerings for the IoT Revolution
https://channel9.msdn.com/Events/Build/2016/B815
//Build2016 : Developer's Guide to Connecting Devices to Azure IoT
https://channel9.msdn.com/Events/Build/2016/B844
Ignite 2016 : Learn about Microsoft IoT Vision
https://myignite.microsoft.com/videos/2905
Azure IoT Suite and preconfigured solutions Learning Path
http://aka.ms/iotSuiteDoc
Azure Iot Suite Portal
https://www.azureiotsuite.com/
Reference