 Hello everyone, and thank you for being here at this presentation today. We've had two days of our summit right now, we are at the peak, and today is still to come. And we are in Boston, which is a smart city. We'll talk today about the case of Messina, which is a smart city. I'm Cristiano, product manager at Fujitsu, and I will tell you about the product part And the business side of this case study. Together with me there is Giovanni, researcher at the University of Messina. And he will take care of infrastructure and the demo. So we'll try to have quick demo to show you what we're doing in Messina, and Vitec, senior software engineer at Fujitsu, he will explain the architecture and some challenges we found during the project. So we are talking about Smart City, je taj nekaj internetne vse sprav. Vse, kaj je taj internetne vse, je to, kako se v sekrem se na internetu zavobila. Tukaj, zato nekaj, ko vsi vse internetne vse sreče, nekaj ne bo? Vsi, zelo nekaj. Vsak, da smo, gre prijezno, se vse. Zato, da smo taj nekaj, da se vse internetne vse sprav, zato, na zelo, internetne vse sprav, Kaj je resultat? Zdaj je nekaj idej? Zdaj je biti drge. Zdaj, kako smo povedali, povedali smo iluminacje Tanateros, ko je globalna organizacija in internečno-alusijanica organizacija. Zdaj, kako smo povedali povedali, in tudi je vzveč vzvečanje. Zdaj je vzvečanje, da smo povedali, V 2014, kako se je poživala na vsega zpronovacija, v tudi in kako je inočniko namašnja, je to vso vseza, da si zelo vzajmo in zelo vzajmo, da je to, da neče možemo spruniti ozvodno, na stavnih zelo. Vsek je zelo načo, da je tudi krat, ko se si izvedilo, da smo se videli na kajovar postupno, Kako prizvane potrebe, načinja, krati, nekaj nebezavima, nekaj počke, nekaj nebezavima in tako. Zato včasila prišta vših prizvane potrebe in zelo počke. Načinja prišta in počke izgleda vzelo in tudi začel načinje. Kako počke, nekaj nebezavima, nekaj nebezavima, z tem ještavite na smarstosti, a PayPal je poživljen, tako prindu na tjeovih projektu. M展em z pristrija, kaj podišel se dici zvah. Načal do spremarjosti je glednje, začal se egzitere zaživljenje, da se je poslujeva počet, da��o osredno. Res učliram, je wstajšnja, da je zelo jaz načinje. Se je vzivak, da je inša vzivak, in v sej i do zelo v Sej, izgleda, da je svetne energije, in da je zelo vzivak. In sej sej, da je zelo vse zelo vzivak, in da je nekaj začin, je občanč, da je zelo vzivak, z časem, da smo imeli informacij do vseh vysnev, zelo se podnevna in pošli v eni unifičnej pojanti. This is the goal of stack for things, the second layer that we have. Indeed stack for things serve to connect the devices with the underlying cloud. We are talking about Messina crowdfunding action community, therefore the natural choice for the cloud is open stack. Naredno izprončilo, da smo však odpoljali internet, všeč da se dobro izprončilo, je, da se begražajo o tem, da se dobro izprončilo. Naredno izprončilo, da se dobro izprončilo, je, da se učinimo z sedim informacijem, tukaj analizim večo in tukaj prav, in prišli, da so prišli, da se dobro izprončilo, da bi ne začeli anomali. To je počet, da se početimo Monaska. Se pa najša česká odpunčila, je to, kjer smo v OpenNationala statu začeljene in inenacimente. Preživno je življenje, nekaj nekaj nekaj projče vrte. Vznikam, da je vznik v Missina. Tukaj, ta je v Missina, ki se vidimo, je v medelji mediterenje, je zelo zelo, je zelo po tega, je vrte, kako se kaj je, da nekaj nekaj nekaj prav, da nekaj da vrte, ker se zelo v struče zelo, da se vse je zelo vse, ki je to, da je to dobro. Tako, da je to, da je zelo vse, da se zelo vse za tudi, da je tudi projekte, ko se je zelo vse. Uživljamo mobilitve in turizme. Vse je, da je to projekte, zelo vse, je vse, da se zelo vse. Zdaj značimo, da se v Jovani, kaj prič nekaj izgleda o infrastruktučnih, zelo da bomo izgleda demo. Tako, prvič, če je tudi izgleda, da je Kristjano, tudi je tudi izgleda, če je tudi izgleda, če je tudi izgleda, če je tudi izgleda, če je tudi izgleda, če je tudi izgleda, če je tudi izgleda, če je tudi izgleda, če je tudi zgleda, če je tudi izgleda, če je tudi izgleda, če je tudi izgled Notevision twentyman delun, če je toveno kratil, finšquer damov, čekaj extra roz Шild, da obaj sm�anti prokrichten i.o. the pins available on the system, so being able really to attach any kind of sensor very easily because it's really a plug-and-play experience and in this case we are talking about thermistors, about brightness sensors, about sensors for noise, environmental noise and so on. But this is just the first kind of devices involved. We are expanding on to different, other, more powerful systems. We already have used in the field Raspberry Pi and other systems which are, let's say, under the single board computer category. But we are also expanding on the mobiles, in the sense that the mobiles are meant to be part of the infrastructures we'll see in a moment. So, in terms of the architecture, this is the board-side architecture, so we have really what is called the lightning rod, which is really the agent on the board, which is its main goal, of course, is to interconnect the device with the cloud. What it does is it is able to, of course, receive and send data, comments, streams. It's also able to instantiate virtual networks, but this is something more advanced than at the moment is prototypical and it's only available on a special flavor of this environment, which is not JS-based prototype. But the main goal, especially talking today, is about being able to really change at runtime the purpose of the device, so having a plugin loading system. So really what we call a Stack for Things plugin is just a way to really have user-level business logic, which can be deployed, we say, injected at runtime on these devices. And, of course, okay, we'll skip the lower layers, because they are dependent, of course, on the particular system we are talking about. In this case, there is an abstraction layer, which is file system-based, and it is based on a kernel module for Linux, which exposes GPIO, really, as virtual files on a sys.fsp. So this is the cloud-side architecture. This is the architecture of what we call Iotronic. Sorry for the pun, but it was not really intended. It was a sort of a code name for the project. It got stuck. But anyway, the idea was exactly that, in the sense that we wanted to have these devices as bare metal of the infrastructure. Of course, distributed infrastructure. And so we really modelled that after, of course, an open stack service, so it's really defined as such. We have, of course, the APIs, which are available through a command line client, and through a dashboard we'll see now. So through the web browser. We have the conductor, which is really the core of the system. So, really, what is tasked with ingesting, of course, API calls to dispatch really messages among different components. We'll see now in a moment. And, of course, to persist on the database all the information concerning the metadata concerning the IoT devices. So, really, the identifiers and other metadata, which is useful for the user. In this diagram, there's a part, which is already available in the open stack compliant service, which is the one page agent, which is tasked with the data and command stream, as we have said in the previous slide. And the part, the tunnel agent, which is really meant for the networking part, the more advanced tunneling system. Both are based on web sockets technology. In fact, it's WS tunnel. And WAMP, which is really a sub-protocol of web sockets. And its purpose is to provide, publish, subscribe system, and also root at RPC. And so, now we get to the demo. Hopefully. I hope everything goes well. OK. Not now, I'll tell you. OK. First of all, let's see if we have devices already available. OK. Let's first switch then on the dashboards. OK. First of all, the interaction on the dashboard we just mentioned. We have a new panel, which is called IoT. This is where we can see information concerning the boards, as we have seen. So, as we have said, so we have here Boston 6, 11, 39, and 48. At the moment, we see that they are offline, but because they didn't connect, now it's in a moment. But anyway, here we have the descriptions of metadata about the system, like the kind of device or a unit. We have the location. And then we have a list of plugins we'll see in a moment. What we can do here is, of course, OK, also looking up the information for the geolocation. And we can create a new board in the sense that we can really put up a new board, which is meant to be an instance of a board, which will get really populated when the board really gets switched on and registers to the cloud. We can delete boards. We can remove plugins from the board. And now we switch to the plugin list. Here we see the plugins. We have the owners of the plugin, in this case, for instance, the admin, public if they can be visible for all the users. Callable means that the kind of plugins, which really are callable, so true, are those, which are really sort of an RPC. So we really have to inject that kind of plugin, and then call and receive the response back. Whereas we have what we call asynchronous plugins, where we can inject the plugin, we can start, stop that. And, of course, for any plugin we can remove from the board. And we can click on a plugin and see the information about the plugin, including, of course, the code. And the user, of course, this is user level code. So as a user, I can create a plugin and copy-paste the code I have. OK. And in terms of identity, as well, we have a project, which is called Boston. We have users, including one under my name. But what I want to see is that we have new roles, which are especially meant for this kind of treatment. So we have an admin of an IoT project and a manager of an IoT project. Then we get to the monitoring part. This is really the monaska panel integrated in Horizon. And here we have the links to the metrics, the board's health, the monaska health and the log management. And here the services should appear. Can we switch on the clips? No. No, as we switch on the clips. Because it is not working. Where is the clip? No, as we switch on the clip. The offline. No, it is not working. OK. This is not working. OK. Sorry. It was just a network problem. A network problem, but it's no way. OK. So just leave us. We saw something similar this morning during the keynote. OK. So just a few seconds. OK. Anyway, good we can at least see it live. We'll see now in the monitoring section the boards coming up. Of course, let's give them some time. Just to give some perspective while we wait for this kind of devices. OK. Here, look, there we have a way to see. These are what are called linino boards, because there is really a linino environment, which is really a sort of a flavor of a minimal Linux distro. In particular, it is derived from OpenWRT, which is famous for routers. But maybe it's because we need to. OK. OK. Now we are injecting the monaska plugin. Let's see the boards first. OK. The boards are still not connected. Let's switch to the clips. OK. Let's switch to the clips that we have recorded, because problems happen. So anyway, you can see here, I'll try to skim through the parts. OK. Here I'm doing what I was expected to be doing. So I inject the monaska plugin, which is really a plugin meant for, as you can see, sending metrics, and we have a polling time. It is meant to be different for each board in order to have, let's say, different timings, because it's a part of the demo, as we'll see in a moment. So 25, 20, 15, 10 seconds. OK. Then here we have the graphs. OK. Here we have, for instance, OK. What was called the boards health. So also the monitoring with respect to the resources. So in this case, CPU load run pressure. And, OK. Here we see, OK. What we would have, OK, is this. We would have this one. So you see that we have really the green ones, which are the ones which are online and are monitored. So then we can see that we have arms. And you can see that the status is OK. Alarms which are custom configurable, in particular configured for a certain threshold over, for instance, temperature, which was the reason for the lighter. And, OK. Here we get also to the visualization stages. So back to Grafana. So, OK. Here we have some heat maps. We also have the real time graphs. We can't see them because they are not in the recorded video. You have the monaska health. Monaska health is really the health of the monaska system, really the monaska service in the cloud. And, OK. Here we have, sorry, we have Kibana, which was the log management part. In the log management part we can filter, for instance, the kind of device by log level, for instance, and then as we can see by host name. And so have a look at a specific board where we also have encoded as messages the measurements to have another avenue to really have data streamed and persisted. And, OK. Let's go bit forward. And, OK. OK. The ultimate goal also on the Kibana side in terms of visualization was having a look at the four boards all over Boston with different kind of dimension of the circles and of the shade. And, meaning, of course, the count, the number of samples arriving. So the idea is, as we can see now, with the lighter part of the limo, that we, OK. So just to give an explanation here we have also the logs in real time over the shell to look at them. What happens is, OK. I light one of the temperature sensor. Light just put near the temperature sensor. But the idea is that one of these really upon triggering of a certain event in this case a threshold over 30 degrees, for instance. Just in a moment. The logic in the plugin was, OK. Please restart, reload the plugin in the other nodes in the area with a different polling time. Really a quicker frequency because we are talking about a critical event. It could be a sort of, let's say, a fire incident. And so we want to be sure that we are tracking really the phenomenon. OK. And so we can see that there is a rebooting you can see. I will stop at a moment just to have you look. And so we are restarting the plugins in the other systems. And so, OK. We can also see that there is the alarm. We can see that there are spikes over the whole graphs. And we can see also that the count increases more quickly in the boards and they tend to be more leveled. Of course, it's not that dramatic this way, but you get the idea. OK. Then, OK. The counter, we have shown that. So we can skip this one. So this was just to give a bit of a context from where we started. Cristiano told you that we had this smart microfunding initiative. What we had is, OK, we have at least issues with visualization because we have a sort of built-in solution. Solution we built, we developed in-house. And so we wanted really to have something more powerful. This is really the kind of dashboard that we built on our own. And so we have, of course, the measurements. We have the historical data. We have ways also to see. Let me check here again. OK, that was to... Have you seen that also on our map we had the update of the data? But what I wanted to really show you was that really we have... OK, here maybe, yeah. Here is again our home page and the dashboard we have for SmartMe. But here we can really zoom in, have the data. We have the last sample. We have historical data. We have some grafing also here. But it's not real time. This is just, OK, this is connected to an open data system in order at least to have a way to really make it public for government and other interested citizens. OK, and that's it for this one. Just a quick... OK, not here. Let me have a look here. Just a quick look at the other system that I told you before, the standalone version of Iotronic. This one has some more advanced functionalities. Just to know about, we, for instance, have the possibility to put this H in the system through the cloud by attaining the system. And we have sort of a very little version of network management system resembling, in a sense, neutron, in a sense that we put up virtual lines among this system over WAN and so we are able really to interconnect these systems and think it's done with them, yeah. Thank you. Yeah, so in case of smart city implementations, I think it's quite obvious that with time your environment will grow. You will get more objects to observe, you will have more devices for measurements. So you need a solution, a scalable solution to collect all this data, to organize it, analyze it, and visualize. Because stack for things already integrates with open stack, Monaska is a natural choice to achieve these tasks. And Monaska stands for monitoring and logging as a service at scale. And indeed we put this on high performance, scalability and thought tolerance. We achieve it by design. Monaska follows microservice message queue architecture. We have a number of big data technologies which we use, like for example Apache Kafka massively scalable message queue well established in big data projects. It is highly performance. It can handle millions of messages per second. Then we have threshold engine, which uses Apache storm. It is distributed streaming processing calculation framework. We use it to evaluate alarm expressions in the threshold engine. And then we have inflex DB to start the measurements. It is at the moment one of the most performance open source time series databases. Last year, end of last year, they published the results of the benchmarks. On single AWS instance, they measured 900,000 values per second right throughput. I will not go into detail to all the components. In this diagram, we can see at the top that the agent is in that case a custom agent because of the resources which are on the board. It is installed on the device. It collects the measurements and also monitors the healthiness of the system. We also have at the top left the dashboard which you have seen and we integrate with Grafana dashboard so you can visualize your data. One feature I would like to focus a little on is that in the context of IoT measurements the measurements they are different from when you are monitoring an open stack system for example so they don't come in regular periods of time you have long periods when you get just a few measurements, you have other periods where you get many measurements and with the traditional aggregation functions which we use in monoscolic average some min max you also need a constant evaluation period to evaluate the alarm expression and to handle this sporadic occasional metrics we use the last function we just we don't need then this evaluation period we just take the last measurement which is known and it also has the advantage that the transition if the threshold is exceeded occurs immediately the measurement comes in alright, that's all for me alright so then for next time we take care that all the cables are flagged in advance so we will try next time to the weather I want to tell you about the current status and the next steps of this project we are working on 6 projects European projects for about 60 billion dollars and we will do that for the next following months we see that there are more and more projects and products that we want to integrate so we are growing there are more use cases, more challenges that are arising and therefore we think that combining our projects with other open stack projects could be a good solution for us also in the next future what we want to do is one of the issues that we see is deploying applications in the devices and in the cloud so what we want to do is to monitoring all this information so from the application point of view that leads us to the end of this presentation just wrapping up we have seen the case study architecture, sort of demo and the next steps and right now I think we have a little bit time for questions and answers if you want, if you have any questions could you please speak to the microphone Yuri Kutan, I'm just wondering what did you exactly use for the threshold processing? as I said we use Apache Storm so the component we use is called monaska threshold and it uses Apache Storm and it's just some sort of straight forward linear threshold setting not like correlation or whatever no so you can create compound alarms defining alarm expressions for different metrics you can do that combine them with logical operators but we don't do really correlation ok, thank you one of the example of what we do is complex event processing where we combine different types of metrics different types of logs all together and create an alarm on top of that good question on the monaska how it is different than cilometer? I'm just trying to figure out what it is collecting and cilometer also kind of similar style so what would be the difference between cilometer and monaska? technically with monaska you are able to have much finer granularity of your measurements you can collect like every 5 seconds measurement over a long period of time and you can store all this data the system is really performant so you cannot achieve this with cilometer another question we are good and great thank you very much