Welcome. I'm Brad Cole, Product Manager of Enterprise Software at Digi International. And today, I'd like to talk to you about IoT stack integration. But first, let's take a look at why we do what we do here at Digi. We believe that data can change the world. This inspires and informs everything that we make all the way from our software to our hardware platforms here at Digi.
So let's look at IoT. What is IoT? Basically, IoT is the internet but with things, things that are not attached to people. So if you think about the internet as we use it today from our smartphones to our tablets to our PCs, whatever, there is usually a person at the end of that thing interacting with either another person or some sort of a system. But there's usually a person at the end of that device.
Well, with the Internet of Things, we're talking about a large number of things out in the world that have nobody attached to them. So there's nobody there to correct problems if they occur. So dealing with devices in the Internet of Things is a lot different than the challenges that we have in just the general internet.
And those things can be anywhere from, you know, a simple button that just reorders product to something on a moving vehicle tracking its whereabouts and may be monitoring what's going on or providing human-based internet access on that vehicle. It could be measuring the level of different tanks for different services or even your home smart thermostat or street lights. Any number of things are becoming connected to the internet and being monitored and controlled in that way.
So let's step back a little bit and take a look at the Cloud. So Cloud, one of these terms that's used a lot, but what does it really mean? Well, it's effectively a set of services that you don't have to manage. You can utilize them but you don't have to worry about managing that set of services. That's somebody else's problem. So it's a really nice way to utilize components, services that you don't have to worry about making sure that they're running, making sure that they're performing as expected, etc.
And so that can be anywhere from a virtual server space to database access to cellular coverage, you know, to a banking application. Any number of applications are...you know, when they're managed by somebody else, hosted by somebody else, that's what we call the cloud. So if we take a look at the IoT stack, we'll look at a number of the building blocks within an IoT stack and an IoT solution. What we wanna focus on first here is the bottom half, where we have devices and connectivity, how you manage basically all of those aspects of a device that's out in the world that has no human connected to it. So we'll focus on this first.
There are a number of challenges and risks, as we mentioned earlier, that are different from the traditional internet. Some overlap but some are different. So one that's overlapping is the area of security. There have been a lot of security vulnerabilities exposed in the Internet of Things devices. And so this is an area that you really need to pay attention to. So there's more to it than just making sure that a device is not able to be compromised. You really need to plan for what happens if it does. So we'll talk a little bit more about that in a few slides.
Another challenge is the device is maybe really hard to reach. So they're maybe at the top of a pole or a tower. And once you get that thing installed, you don't wanna have to go back and visit it. Another challenge is it might be moving. So if it's on a vehicle that's moving around all day or for a large majority of the day, you need to be able to communicate that while it's in transit and know that you can always reach it.
Another challenge is you might have a deployment that is all across the world, so just a geographically diverse deployment and in large numbers. So you need to be able to communicate with and manage those devices on a tremendously large scale.
So the way I like to think about it is in the IoT, think of a device as if it was on another planet. Once that thing is out there, you literally can't go visit it. So it needs to be able to communicate back to you, and you need to be able to send commands and troubleshoot and recover that device to the best of your ability without having to go visit it. Of course, it's not on another planet so you could if you had to, but I always like to think of it as being that impossible to go visit.
So let's spend a little bit of time on security. At Digi, we have a security framework that we call TrustFence that outlines a number of security tenets. And so, there are tenets that we apply to our standard practices, how we design our devices. But one area that I wanna focus on is a practice related to ongoing monitoring and support. So this has many aspects to it from a customer standpoint, as well as what we do here at Digi.
So the first thing I wanna show you is our security center. So this is a location on our website, where we provide updates with respect to security vulnerabilities that have been released or security vulnerabilities that we may have found ourselves. So any security-related update will go here, and you can subscribe to an RSS feed to get notified of those updates the moment they're posted.
But from a customer standpoint, just the ability to monitor your IoT deployment and make sure that that's performing as expected, one of the important aspects is monitoring the health of your device deployment. So you can generate reports in our monitoring and management application called Digi Remote Manager. You can specify the reports for your account in aggregate, your deployed devices in aggregate or on an individual basis, and then you can schedule that report to run on a periodic basis.
Another key feature is what we call profile manager. This allows you to create a profile or think of it as a policy that allows you to specify the desired configuration, the firmware version, and even files that would reside in the file system that will make up your expected device deployment. And you can scope a profile to a group or if you're using tags to organize your devices, you can scope it to that as well. So you can create different profiles for different configuration scenarios, and you can create basically as many as you need.
But the profile manager will continuously scan or periodically scan your deployed inventory and lets you know if any of those devices become non-compliant with that profile. And then, it can repair them if you desire to have them repaired. So you could have it just notify you of the non-compliance issues, and you could look into that yourself. But you can also have remote managers just go ahead and repair those or at least attempt to repair those for you and then, notify you that that occurred as well.
So let's talk a little bit more about managing at scale. So, you know, if you have, let's say, 10 or fewer devices deployed, it's probably not too cumbersome to log in to each device individually and determine how it's working, make updates, and things like that. But let's say you had hundreds of thousands of devices deployed all around the world, and you need to deploy a security patch or a new version of firmware came out or maybe you made a configuration change that you want to deployed to all of your devices all around the world.
You would need a large staff to be able to monitor all of those devices or you can use a device management application that automates a lot of that work for you. So going back to our profile manager feature, this is a good way to provide software updates. So similar to scanning for security compliance, you can create a profile that specifies a new version of firmware or maybe a new configuration, and then that profile will manage the deployment of the firmware configuration or other files like maybe a Python program out to your deployed inventory of devices. So it'll do all that for you, lets you know how it has done, which devices have failed if any have failed, etc. And it'll do the work for you.
Another thing I wanted to mention is the ability to get the edge devices beyond the directly-connected devices. So what I mean by that is you might have a gateway that has IP connection capabilities that can connect back to a management platform. And that gateway might provide that bridge to something like a Zigbee network. So in this case, we can see the Zigbee nodes. They're associated with the gateway. And we can even go in and view the settings or make changes to the settings.
And so, using our Remote Manager platform in combination with our gateway, you have the ability to monitor and manage devices that are even beyond the gateway itself. And you can include those devices in the automation that we've been talking about so far. So here's an example of the ability to upgrade the firmware on...this happens to be the XBee gateway or sorry, the XBee radio in the gateway. But you can also update the firmware on the remote nodes on the Zigbee network itself.
So we spent a little bit of time on the bottom edge of the IoT stack, the device and connectivity portion. So let's focus on the upper layer, where you might integrate with third-party applications or other cloud providers. So in this example, if you have devices that you wanna connect to different services like Google or Microsoft or Amazon, you might want to utilize a combination of the services or you might wanna use exclusively one service. But at a later date, you might wanna switch to a different service from a different provider.
Well that can be very complex if you have a large deployment of devices and you wanna make a change like that. So utilizing a central device management platform like Remote Manager, it makes it a lot easier to deploy those changes out to those devices. Now, as we're indicating on the top edge here, you can also integrate with those third-party providers through remote managers. So, you could have the entire data path going through Remote Manager. And this is an example of some other third-party application providers.
But we would do this by basically utilizing the RESTful web services interface at the top edge of Remote Manager. So while Remote Manager has a dedicated connection to the devices at the bottom layer, it provides the ability for third-party applications to access all of the functionality of those devices, as well as the automated functionality of Remote Manager via web services.
So, let's say you wanted those devices to connect directly to those third-party providers. We can make it easy to manage that as well. So in the earlier example, where you might wanna switch providers or you wanna utilize services across multiple providers, using our platform Remote Manager, you can deploy business logic to your devices that will connect to each of those providers. And if you need to make changes, we can make it very easy using the previously discussed methods to push out those changes. So this would allow you to push maybe Python code out to your devices that would allow you to connect to these third-party providers using either MQTT or HTTP or maybe some other protocol.
So this is just another view of that illustrating how you can connect to third-party applications using the RESTful web services in Remote Manager that, in turn, has access to all of the devices that it's managing. And you can do that in a couple of ways. You could go in and pull for the data, but you can also configure Remote Manager to push data out to a listening application whenever new data arrives.
But additionally, you could program the device to connect directly to the third-party application. And we can download all kinds of business logic to those devices to talk to different sensors, collect different data, do different types of functionality remotely on the device. And then, that can talk either directly to Remote Manager or directly to the third-party application. And this is just the blown up view illustrating the different types of abstraction layers within a Python application example.
So, we've just kind of scratched the surface but hopefully, that gives you enough information to know what is possible. So, where can I get more information? Where can you get more information? On our Digi support site, we have links to our professional services team, our wireless design services team.
We can help with anywhere from doing a mobile or a web application development to developing business logic that would run in the Python interpreter on devices or if you just need help with an IoT implementation planning. We could help figure out where you can get started, and then what services you may or may not need. But if you go to digi.com/support, that's a great way to get connected to the various resources that could help you get on your way to developing an IoT deployment strategy.
So, thanks for tuning in, and we look forward to you helping us change the world.