Thursday, November 26, 2015 10:52:35 AM
Quest'anno avrò il piacere e l’onore di tenere una traccia a WPC 2015, in dettaglio nella giornata di martedì 1 dicembre parlerò di “Windows 10 & IoT - WI011 - Introduzione ad AllJoyn”, in dettaglio:
AllJoyn è un framework open source che abilita l'interoperabilità tra dispositivi e applicazioni indipendentemente dal loro brand, categoria, trasporto, sistema operativo e senza la necessità del cloud. In questa sessione verranno illustrati i concetti fondamentali di questo framework, la sua implementazione all'interno di Windows 10 e le relative API di utilizzo.
Come sempre vi aspetto numerosi !
Saturday, November 14, 2015 6:06:32 PM
Questa notte è stata rilasciata una nuova versione di .NET Gadgeteer che finalmente introduce il supporto a VS2015 e si allinea con il .NET MF 4.4. Ovviamente per poterla utilizzare si deve aspettare il rilascio dei vari SDK dei fornitori delle schede ma penso che sia questione di solo qualche giorno, almeno per quello che riguarda GHI Electronics (vedi il relativo post). Di seguito riporto le novità introdotte dalla versione appena rilasciata:
- NETMF 4.4 support
- VS 2015 support [CodePlex #2805] (Express editions no longer supported to align with NETMF)
- 4.3 WebServer responder bugfix [CodePlex #1861]
- 4.3 Display module not using available width bugfix [CodePlex #2663]
- 4.3 Inaccurate I2C exception message [CodePlex #2665]
- Designer now supports multiple sockets with the same TypeLabel [CodePlex #2686]
- Application template wizard remembers last used NETMF version per board
- Builder templates failed to build when FullManufacturerName was outside codepage
- Builder templates use full mainboard/module name in product names
- Builder templates generate projects for selected NETMF versions only
- New hardware template wizard
Friday, September 25, 2015 4:00:00 PM
Dopo il grande successo dello scorso anno, Innovactive sarà ancora presente a Todi Appy Days, la grande manifestazione sulle App e sull’IoT che si terrà a Todi (PG) dal 24 al 27 settembre 2015! Todi Appy Days è l’International App Festival rivolto alle aziende, ai professionisti, le scuole, le famiglie e tutti coloro che vogliono vivere il digitale in modo naturale nella vita di tutti i giorni.
Mostreremo soluzioni per sistemi IoT dalla scala personale a quella industriale: Wearables, SmartCity, SmartFactory, SmartHome, SmartAgriculture e progetti basati su interazione di prossimità (“Nearables”) con tecnologia Beacon/BLE.
Vi aspettiamo nel nostro stand della Sala delle Pietre (o dell’Arengo) in Piazza del Popolo a Todi!
Sunday, May 24, 2015 1:28:00 PM
On April 18th, within Internet Of Things Conference 2015 in Naples, I had a Talk about taking advantage of Microsoft Orleans in IoT enterprise systems. As part of such talk, I developed a sample, Orleans Railway, showing a possible “model” for cloud-aware IoT application design: mapping each physical device to a “software” counterpart (I purposely called “avatar”) living on Cloud, leveraging Actor Model implemented by Microsoft Orleans as an effective way to enforce such “binding”.
Today, I published a running demo of Orleans Railway on http://orleansrailway.cloudapp.net , where you can “play” by assigning destinations to trains and see them moving onto graph following optimal path. I also published a “sideshow” presentation on SlideShare, at following address: http://www.slideshare.net/maiorfi/microsoft-orleans-iot
Some additional info:
- Sample graph is made of 300 stations/nodes, 700 rails/edges (directed, i.e. that can be traversed in one direction only) and 50 simulated (+2 physical) Trains
- Each edge/rail features a traversal cost/time: the purpose of (server-side) system is providing the best possible route/path toward requested destination
- In order to show different traversal cost/time, rails are depicted using a color scale going from brown (slow) to cyan (fast)
- In order to assign a destination to a Train, user has to choose a Train, using upper dropdown list, a destination, using lower dropdown list and press “Go To” button
- Stations containing trains are depicted with orange border; similarly, edges/rails occupied by trains are shown using orange color
- If train isn’t already moving and there is a possible path connecting current train position to requested destination, the train will start (acquiring MOVING state), moving across graph following optimal routing; if no suitable route exist, train will remain in “IDLE” state without moving at all
- Both Train state and position are persisted (through Orleans Azure Table Storage provider), i.e. they will survive to cloud service reboot/updates
- Web app uses SignalR in order to push notifications to listening browsers: such notifications include Train position and state updates. Also, sound notifications are provided for significative events (no suitable route found, train moving, train starting, train arrived, etc.). Thank to bidirectional communication feature all browsers pointing to Web front-end UI will see trains moving in realtime!
- Please note (as kind of “caveat”) that Web UI is rather computational intensive: your browser will be responsible for high CPU load caused by graph rendering HTML5 engine used by VisJs library
As a Microsoft Orleans sample, it should be emphasized that:
- Application runs inside an Azure Cloud Service embedding following 3 roles: a worker role as Silo host, a web role as UI front-end (for humans) and another worker role as M2M front-end (for devices)
- The M2M front-end role has been implemented as an MQTT client/endpoint, using a sample public MQTT broker powered by amazing HiveMQ features
- Application defines only 2 type of Grains: Map and Train, the first is a Singleton responding only to graph topology definition requests, while the latter, instanced “per Train”, solves all “shortest path algorithms” requests coming from users, leveraging optimal parallelization features of Orleans
- Sample also depicts one of “killer pattern” of Microsoft Orleans: modeling Grains as Automas (additionally with persisted long-term state) , by mean of Finite State Machine design
- Interaction between physical devices (trains) and software service living on the Cloud uses a MQTT/iBeacon gateway developed (by me) with .NET Micro Framework, using M2Mqtt (by Paolo Patierno, @ppatierno) and NETMFBLE (by me, @maiorfi) open projects
- During my Talk, Paolo Patierno was responsible for…moving physical devices (whose name in sample system is purposely different from other, simulated, ones) in a room “tagged” with 10 iBeacons. While Paolo was moving across the room (take a look at photos below!) people was able to follow trains moving on web UI projected on wallscreen as well as on their smartphone browsers!
- For non-physical trains (whose names are N_1…N_50), movement is simulated by an external (i.e. IoT Orleans-based system doesn’t actually know they’re not real!) MQTT signal subscriber/publisher. Such simulator has been developed as a Node-Red flow; also it simulates different traversal cost using delays, with a “0.5 seconds per cost unit” factor
If you are interested in implementation details, project sources can be downloaded using following link: https://dl.dropboxusercontent.com/u/7414592/TinyCLR.it/Blog/orleans-railway/SistemaGestioneNavette.7z
Saturday, May 23, 2015 3:57:52 PM
Last month I developed a lot and I had the pleasure of being speaker to three national events and an international one in California (but from remote).
I was greatly involved to write code and content that I decided to summarize hoping that you could enjoy them.
With the slides I tried to describe the most important features of the Azure Service Bus focusing on the Event Hubs and its use within the telemetry pattern in IoT :
These slides have related demos where I used my last Azure SB Lite library, thanks to which you can access to the Microsoft Azure Service Bus using the same API of the "original" SDK but on embedded platforms such as .Net Micro Framework and .Net Compact Framework as well as Mono (on Linux) and WinRT (then Windows 8.1 and Windows 10). It is based on the AMQP .Net Lite library which hides the concepts on the AMQP protocol.
Regarding the demos :
- BLE2Azure : IoT gateway concept from BLE devices to Microsoft Azure (Event Hubs) built with the .Net Micro Framework and the FEZ Spider and Netduino 3 Wi-Fi boards
- Azure SB Lite Examples : examples of usage of the Azure SB Lite library that allowed me (in Venice) to explain how the access to the Service Bus works through the AMQP protocol and discover what lies beneath the simple APIs.
Obviously I do not stop here despite the deserved rest !