Building the Internet of Things Internet of Things & .NET Gadgeteer & Microsoft StreamInsight Mirco Vanini Microsoft® MVP Device Application Development
Agenda Internet of Things ? IoT – Numeri IoT – Architettura Microsoft StreamInsight Demo Links Q&A Contatti
Internet of Things (IoT) Wikipedia IoT è vista come una possibile evoluzione dell'uso della Rete. Gli oggetti si rendono riconoscibili e acquisiscono intelligenza grazie al fatto di poter comunicare dati su se stessi e accedere ad informazioni aggregate da parte di altri. Le sveglie suonano prima in caso di traffico, le piante comunicano all'innaffiatoio quando è il momento di essere innaffiate, le scarpe da ginnastica trasmettono tempi, velocità e distanza per gareggiare in tempo reale con persone dall'altra parte del globo, i vasetti delle medicine avvisano i familiari se si dimentica di prendere il farmaco. Tutti gli oggetti possono acquisire un ruolo attivo grazie al collegamento alla Rete. IoT è far sì che il mondo elettronico tracci una mappa di quello reale, dando un'identità elettronica alle cose e ai luoghi dell'ambiente fisico.
IoT - Numeri 1.5 mrd pc connessi, < 1 mrd di telefoni, 50 mrd entro 2020 (Ericsson), sette dispositivi per ogni essere umano! 16 miliardi di dispositivi saranno connessi a Internet entro il 2015
IoT - Numeri Nuovo modello di business – I dati sono diventati la nuova moneta ! IoT è l’ accesso, la gestione e la generazione di informazioni
IoT - Architettura Persistere i dati in un database ed eseguire query periodiche su di esso non è l'approccio giusto !
Microsoft StreamInsight Microsoft StreamInsight™ è una piattaforma per lo sviluppo e la distribuzione di applicazioni di elaborazione di eventi complessi (CEP). CEP è una tecnologia per l'elaborazione di flussi di eventi con velocità effettiva elevata e bassa latenza. L'architettura di elaborazione del flusso a velocità elevata e la piattaforma di sviluppo basata su Microsoft .NET Framework consentono di implementare rapidamente applicazioni di elaborazione eventi in modo estremamente efficiente. StreamInsight consente di sviluppare applicazioni CEP che derivano immediatamente il valore commerciale dai dati non elaborati riducendo i costi di estrazione, analisi e correlazione dei dati. Al contempo, consente di monitorare, gestire ed eseguire il data mining per rilevare condizioni, opportunità e difetti quasi istantaneamente.
Microsoft StreamInsight – Architettura Microsoft StreamInsight è progettato per fornire tempestive reazioni su flussi dati che arrivano continuamente senza la scrittura dei dati su disco e l'esecuzione di query per l'analisi.
Microsoft StreamInsight – Concetti Streams: Tutti i dati in StreamInsight sono organizzati in flussi. Events: I dati sottostanti rappresentati nel flusso vengono compressi in eventi. Header: Un'intestazione di evento contiene i metadati che definiscono il tipo di evento e uno o più timestamp che definiscono l'intervallo di tempo per l'evento Payload: Struttura di dati .NET contenente i dati associati all'evento Event Kind: Il tipo di evento indica se si tratta di un nuovo evento nel flusso o se sta indicando la completezza degli eventi presenti nel flusso - INSERT e CTI (Current Time Increment). Event Models: Il modello di eventi definisce la forma dell'evento in base alle caratteristiche temporali – Interval, Point e Edge
Microsoft StreamInsight – Concetti Adapters: Gli adattatori traducono e recapitano i flussi di eventi in entrata e in uscita da e verso il server StreamInsight. Input Adapters: L'istanza di un adattatore di input accetta flussi di eventi in entrata da origini esterne quali database, file, feed di ticker, porte di rete, sensori. Output Adapters: È necessario creare un adattatore di output per ricevere gli eventi elaborati dal server StreamInsight, tradurre gli eventi in un formato previsto dal dispositivo di output (sink) e generare i dati in tale dispositivo. Query Templates: Un modello di query è l'unità fondamentale della composizione della query. Struttura che definisce la logica di business necessaria per analizzare ed elaborare continuamente gli eventi inviati al server StreamInsight dall'adattatore di input e generare un flusso di eventi utilizzato dall'adattatore di output
Microsoft StreamInsight – Concetti Il server StreamInsight fornisce le seguenti funzionalità per scrivere query e analisi espressive: Calculations to introduce additional event properties Filtering events Grouping events Windows over time Aggregation Identifying TOP N candidates Matching events from different streams Combining events from different streams in one User defined extensions
Microsoft StreamInsight – Edizioni Il server StreamInsight viene fornito in due edizioni: Standard è consigliabile per le applicazioni che richiedono una frequenza degli eventi inferiori ai 5000 eventi al secondo o con una tolleranza della latenza superiore ai cinque secondi. Premium è consigliabile per le applicazioni che richiedono una frequenza degli eventi superiore ai 5000 eventi al secondo o con una tolleranza della latenza inferiore ai cinque secondi. Microsoft SQL Server 2012 editions StreamInsight editions Business Intelligence Standard Web Enterprise Premium Developer Evaluation Microsoft sta progettando di fornire funzionalità di StreamInsight come servizio in Windows Azure (StreamInsight progetto nome in codice "Austin").
Microsoft StreamInsight – Event Flow Debugger
Demo .NET Gadgeteer Module WCF Service RESTful Service (Input) Dupluex Service (Output) StreamInsight Input Adapter Output Adapter Simple Query TumblingWindow Query Query on Query
Q&A
Links Internet of things Microsoft StreamInsight .NET Gadgeteer – CodePlex .NET Micro Framework tinyCLR.it
Contatti Blog http://mircovanini.blogspot.com Email info@proxsoft.it Web www.proxsoft.it Twitter @MircoVanini