In 2018 I delivered a design on the IoT Edge developer experience in the Watson IoT Platform.
What is IoT Edge?
Edge devices generally live on the edge of the network within an enterprise. They are specific hardware sensors, industrial controllers, or other industrial devices residing on private or potentially proprietary networks at a physical location.
Edge devices are creating quite a challenge for systems integrators since most are generally building cloud-based applications which rely on receiving information from IoT devices to accomplish the business goal.
There are many challenges that exist in developing a path for this information flow, including
- Latency vs Time
- Quality vs Time
- Bandwidth and Cost
- Security and Valnerability
- Maintenance and operations
Read more about my design research on the IoT Edge experience in the Watson IoT Platform
The Hills for IoT Edge may be viewed as a stack of capabilities that deliver value to the Business and the Solution.
Hill 1 formulates the transparency of IoT Edge to solution development.
Chris, an IoT application developer, can develop and deploy applications that are transparent to the instrumentation of devices at the edge
Hill 2 expresses the WOW on adopting new Cloud programming models for the IoT Edge and move away from the constraints of monolithic FW
Devon, an IoT Edge developer, can develop workloads for the edge using common cloud programming models, and automate workload distribution, management and updates on Edge Gateways
And Hill 3 that states the value to the partner ecosystem to leverage the IoT Edge as a platform for delivering edge-based services by shipping on or shipping with.
Dave, an IoT Ecosystem Partner, can deliver IoT Gateway products with edge capabilities, managed by the IoT Edge
Chris, the IoT Application developer, can develop code to work with state and conditions of manageable assets, without knowledge of individual instrumentation, data workload distribution, or network connection state.
Using IoT Edge, Chris can
- Create Edge Gateway types, select IoT Edge capabilities, and register Gateways, using the IoT Platform UI and APIs
- Provision IoT Core capabilities to IoT Edge gateways
- Distribute Data Management workloads to the edge to Filter Messages and Compute Device Device State and submit State Change Events
- Connect devices to the Gateway to Ingest, Store and Forward MQTT messages
- Develop and deliver cloud applications, independently of changes made to the edge instrumentation
Devon the IoT Edge developer, can develop workloads for the edge using common cloud programming models, and automatically distribute, manage and update workloads on Edge Gateways.
Using IoT Edge, Devon can
- Create, build and upload custom containers to the IoT Edge component registry
- Provision, Update and Manage custom containers on IoT Edge Gateways
- Use the local MQTT message bus in IoT Core, to integrate messaging across custom containers, device and cloud
- Create and test Cloud Functions on the cloud and configure as edge followers to run at the edge
- Create aggregation of devices into Things
- Create Rules and Actions, using Device and Thing state, and distribute as workloads to the edge
The User Experience of IoT Edge has three major parts
- IoT Edge extensions to Watson IoT Platform Gateway Types
- IoT Edge extensions to Watson IoT Platform Gateways
- New IoT Edge Services
Developers will use existing concepts of IoT Platform Gateway Types. By choosing the option to make a Gatewan an IoT Edge Gateway, developers get access to additional capabilities when defining a gateway type. The new capabilities are introduced together with the existing gateway properties, or added as new tabs.
When adding a new Edge Gateway Type, a developer will create a gateway type, select the Edge option, and then choose the hardware architecture for gateways of this type. The options are Intelx86, ARM32, ARM64.
Extensions to IoT Platform gateways for optional IoT Edge capabilities.
The developer can also optionally select Edge Services that will run on gateways of this type. The developer can browse the Edge Service Catalog for a list of services and available versions for gateways of this architecture. The latest version is shown by default. Alternatively, a different version can be viewed and selected.
Adding an Edge Service from the Edge Service Catalog to an IoT Edge Gateway.
For developers that want to get an overview of available Edge Services, the Edge Service Catalog is available for browsing and exploring the Docker images that has been configured for a services.
Browsing Edge Service in the Edge Service Catalog.
The following screen flows demonstrate the user experience design in IoT Edge Preview 2.
Developer flow to create a new IoT Edge Gateway and configure Edge Services.
Developer flow to view the state of a running IoT Edge Gateway and its Edge Servcies
Developer flow to browse Edge Services in the Edge Service Catalog
IoT Edge Preview 2 Production Design
The following screen flows demonstrate the production design in IoT Edge Preview 2
Creating a new IoT Edge Gateway
Browsing Edge Service in the Edge Service Catalog.
New designs are emerging in the Watson IoT Platform for IoT Edge.
Explore more information on teh existing designs for Watson IoT Platform for IoT Edge.