2018/12/05 – Among the many new applications introduced at AWS re:Invent 2018 this week, one that is sure to catch the eye of IoT application developers is AWS IoT Things Graph.
Things Graph is an application meant to unlock the key capabilities of IoT by making it easy to stitch together different devices and web services and make them work in a concerted manner. Meant to be used with Amazon Greengrass on the edge, Things Graph is the Cloud portion where IoT automation applications can be built, managed, deployed, and scaled all from one location.
The challenge that Amazon is taking on is that while generally the benefits of IoT are clear, the problem is that building automation applications can be quite difficult. Multiple devices provided by different vendors need to be connected and work together, but each vendor may follow different protocols. So IoT application builders need to be proficient in multiple skill sets, from the edge to the cloud, since the devices and web services need to work together in workflows, and integration efforts often need to be repeated over again in the development, deployment and monitoring stages.
While Greengrass helps on the edge, Things Graph is set up to make the development of IoT applications more accessible and customizable in the cloud. And Amazon believes the development of automation applications can now go from months to weeks.
Things Graph is built around a visual interface that allows developers to compile together the different components required for the application and build it simply by using mouse clicks. Developers simply drag and drop the different components they want in an application onto a canvas and link them using a mouse click to create the order of interactions. Logic and branches for parallel execution are supported and applications can be triggered to execute based on events from locally connected devices.
To make things easier for the developer, AWS is leveraging the concept of models, which are representations of the devices and web services used in the application that abstract away the low-level implementation details, such as data formats, protocols, message syntax. Instead, the capabilities of the device are highlighted in terms of states that the device can have, actions that can be taken on it, and the different events that it generates.
Models are written in GraphQL using Things Graph’s data model specifications developed specifically for IoT development workloads. The models are basically Lego blocks that developers can use to build an IoT application.
Once an application is completed and ready to be run at the edge, Things Graph helps the developer define the parameters, assign the real-world devices to models that are used in the application, and define the triggers for the application.
The application can then be deployed to the edge devices running AWS Greengrass, with just a few clicks. Once pushed to the edge, it acts like a gateway. Users can orchestrate interactions between locally connected devices or include web services like Amazon Rekognition, S3, SQS Lambda, to make a fully orchestrated automated application at the edge. Things Graph supports MQTT and Modbus protocols natively with more protocols being added on a monthly basis.
Things Graph also generates the metrics to monitor the state of the application at any time. It can track flow execution times, monitor which steps failed, which succeeded. Users can use CloudWatch to use metrics to analyze trends, set threshold and raise alarms
During the presentation on Things Graph at AWS re:Invent 2018, it was mentioned that the hospitality business is one area that can benefit from the automation applications Things Graph can provide. With hotels in the local Hong Kong market always looks for an edge, it would be no surprise to soon see hotels offering personalized offerings to their guest based on automation. Tying a customer database to a Things Graph application and machine learning can provide customized services such as programmed music, amount of light in the room and special offers for local attractions based on that specific customer’s needs.
Although many companies are interested in tapping into the potential of machine learning, building a model to solve most business challenge can be quite complex. You have to manage large amounts of data for model training, choose the best algorithm, manage the compute capacity to train the model, and then deploy the model into a production environment.