Part 04 is the final exercise section, and explores the cloud integration aspects of the IoT, with a focus on pulling all the pieces together to build an end-to-end IoT solution.
This content summarizes the lab module exercises as a companion to the content in the following book sections and chapters from Programming the Internet of Things. They are intended to be used together:
1) Overall: Learn how to connect the GDA to one or more cloud services using MQTT, and how to enhance the value of your edge tier solution using a very simple cloud-based analytics service.
2) System Design: Learn how to integrate your GDA with one or more cloud-based IoT environments to scale your system by using the existing connection design patterns established in Part 03.
3) Simple Analytics: Learn how to use a simple analytics service hosted within one or more cloud services to add value to your overall IoT design, finally connecting all the dots to create your end-to-end IoT solution.
Review the README
Please see README.md for further information on, and use of, this content.
Review the LICENSE and USAGE guidelines
Please see PIOT-DOC-LIC for license and usage information.
Part 04 Lab Module Overview
Lab Module 11
Lab Module 11 - Cloud Integration is focused on configuring your cloud service functionality and updating the GDA to support integration with the cloud service provider's MQTT service.
PIOT-GDA-11-001: Update MqttClientConnector to support the use of custom configuration sections, protected calls to publish / subscribe / unsubscribe, and the IConnectionListener callback. The latter will eventually be used to notify a listener (e.g., CloudClientConnector) when the connect / disconnect calls complete.
PIOT-GDA-11-002: Create the ICloudClient interface. This will be used to provide a common set of method signatures for the DeviceDataManager to use for interacting with the cloud client.
PIOT-GDA-11-003: Implement CloudClientConnector. This involves a significant amount of work, although much of the connectivity logic will be delegated to a locally instanced MqttClientConnector. CloudClientConnector will implement ICloudClient as well as IConnectionListener and will need to pass incoming messages back to DeviceDataManager via the IDataMessageListener interface.
PIOT-GDA-11-004: This exercise centers on wiring up the interactions between DeviceDataManager, CloudClientConnector, and MqttClientConnector via their various interfaces. It will involve some asynchronous message processing and may require throttling messages to the cloud service.
PIOT-GDA-11-005: This OPTIONAL exercise is focused on generalization of cloud client connection logic via the base class BaseCloudClient (which will implement ICloudClient). Much of the functionality contained within CloudClientConnector can be migrated to this base class. The CloudClientFactory can then be used to create a specific instance of ICloudClient via the DeviceDataManager as per the implementation details in PIOT-GDA-11-006 and PIOT-GDA-11-007.
PIOT-GDA-11-006: This OPTIONAL exercise is focused on the creation of a Ubidots-specific ICloudClient implementation that's derived from BaseCloudClient.
PIOT-GDA-11-007: This OPTIONAL exercise is focused on the creation of an AWS-specific ICloudClient implementation that's derived from BaseCloudClient.
PIOT-CSF-11-000: Git branching instructions (OPTIONAL - only needed if implementing CSF requirements).
PIOT-CSF-11-001: This OPTIONAL exercise is focused on creation of an AWS-specific Lambda function in Python using some of the existing CDA components for data parsing.
PIOT-CFG-11-002 This OPTIONAL configuration exercise is focused on the creation of an AWS-specific ZIP file to be used with PIOT-CSF-11-001.
PIOT-CSF-11-100: Git merge and commit instructions (OPTIONAL - only needed if implementing CSF requirements).
Lab Module 12
Lab Module 12 - Semester Project is focused on completing the requirements for the Semester Project. This will involve updates to your cloud services configuration / implementation, along with new functionality added to both your GDA and CDA.
Part 04: Cloud Connectivity and Final Project
About Part 04 (O'Reilly Book Link)
Part 04 is the final exercise section, and explores the cloud integration aspects of the IoT, with a focus on pulling all the pieces together to build an end-to-end IoT solution.
This content summarizes the lab module exercises as a companion to the content in the following book sections and chapters from Programming the Internet of Things. They are intended to be used together:
It's comprised of two Lab Modules:
Part 04 Summary (O'Reilly Book Link)
Key Learning Activities
1) Overall: Learn how to connect the GDA to one or more cloud services using MQTT, and how to enhance the value of your edge tier solution using a very simple cloud-based analytics service.
2) System Design: Learn how to integrate your GDA with one or more cloud-based IoT environments to scale your system by using the existing connection design patterns established in Part 03.
3) Simple Analytics: Learn how to use a simple analytics service hosted within one or more cloud services to add value to your overall IoT design, finally connecting all the dots to create your end-to-end IoT solution.
Review the README
Review the LICENSE and USAGE guidelines
Part 04 Lab Module Overview
Lab Module 11
Lab Module 11 - Cloud Integration is focused on configuring your cloud service functionality and updating the GDA to support integration with the cloud service provider's MQTT service.
GDA specific instructions
MqttClientConnector
to support the use of custom configuration sections, protected calls to publish / subscribe / unsubscribe, and theIConnectionListener
callback. The latter will eventually be used to notify a listener (e.g.,CloudClientConnector
) when the connect / disconnect calls complete.ICloudClient
interface. This will be used to provide a common set of method signatures for theDeviceDataManager
to use for interacting with the cloud client.CloudClientConnector
. This involves a significant amount of work, although much of the connectivity logic will be delegated to a locally instancedMqttClientConnector
.CloudClientConnector
will implementICloudClient
as well asIConnectionListener
and will need to pass incoming messages back toDeviceDataManager
via theIDataMessageListener
interface.DeviceDataManager
,CloudClientConnector
, andMqttClientConnector
via their various interfaces. It will involve some asynchronous message processing and may require throttling messages to the cloud service.BaseCloudClient
(which will implementICloudClient
). Much of the functionality contained withinCloudClientConnector
can be migrated to this base class. TheCloudClientFactory
can then be used to create a specific instance ofICloudClient
via theDeviceDataManager
as per the implementation details in PIOT-GDA-11-006 and PIOT-GDA-11-007.ICloudClient
implementation that's derived fromBaseCloudClient
.ICloudClient
implementation that's derived fromBaseCloudClient
.CSF specific instructions (OPTIONAL)
Lab Module 12
Lab Module 12 - Semester Project is focused on completing the requirements for the Semester Project. This will involve updates to your cloud services configuration / implementation, along with new functionality added to both your GDA and CDA.
CDA specific instructions
GDA specific instructions
CSF specific instructions