1. Sanjivani Rural Education Society’s
Sanjivani College of Engineering, Kopargaon
Department of Information Technology
Subject :- Internet of Things
Topic:- IoT Physical Servers, Cloud Offerings & IoT Case Studies
2. Content
• Introduction to Cloud Storage Models
• Communication API
• WAMP: AutoBahn for IoT
• Xively Cloud for IoT
• Python Web Application Framework: Djanjo
• Amazon Web Services for IoT
• SkyNet IoT Messaging Platform.
3. Introduction to Cloud Storage Models
• Popular Models are :-
• Amazon Web Service (AWS)
• Xively Cloud (PAAS)
4. AMAZON Web Services for IoT
EC2
AutoScaling
S3
DynamoDB
1. Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides secure,
resizable compute capacity in the cloud. It is designed to make web-scale cloud computing easier
for developers. Amazon EC2's simple web service interface allows you to obtain and configure
capacity with minimal friction.
2. AWS Auto Scaling monitors your applications and automatically adjusts capacity to maintain
steady, predictable performance at the lowest possible cost. Using AWS Auto Scaling, it's easy to
setup application scaling for multiple resources across multiple services in minutes.
3. Amazon Relational Database Service (Amazon RDS) is a web service that makes it easier
to set up, operate, and scale a relational database in the cloud. It provides cost-efficient, resizable
capacity for an industry-standard relational database and manages common database
administration tasks.
4. Amazon Simple Storage Service (Amazon S3) is storage for the internet. You can use
Amazon S3 to store and retrieve any amount of data at any time, from anywhere on the web. You
can accomplish these tasks using the AWS Management Console, which is a simple and intuitive
web interface.
5. Amazon DynamoDB is a key-value and document database that delivers single-digit
millisecond performance at any scale. It's a fully managed, multi-region, multi-active, durable
database with built-in security, backup and restore, and in-memory caching for internet-scale
applications.
5. Amazon EC2
• An IaaS provided by Amazon
• EC2 delivers scalable, pay-as-you-go
compute capacity in the cloud
• Web service that provides computing
capacity in the form of virtual
machine
• EC2 can be used for several purposes
for IOT systems
6. Amazon AutoScaling
• Allows automatically scaling EC2
capacity up or down according to
user condition
• Users can increase number of EC2
instances
• AutoScaling can be used for auto
scaling IOT applications and IOT
platforms deployed as Amazon EC2
7. Amazon S3
• Online cloud based data storage
infrastructure for storing and
retrieving large amount of data
• Offers reliable, scalable, fast, fully
redundant and affordable storage
infrastructure
• Serve as raw datastore for IOT
systems for storing raw data such as
sensor data, log data, image, audio,
video, etc.
8. Amazon RDS
• Web service that allows to create instances
of MySQL, Oracle or MS SQL Server in
cloud
• Developers can easily set up, operate and
scale a relational database in cloud
• Serve as a scalable datastore for IOT
systems
• With RDS, IOT system developers can store
any amount of data in scalable relational
databases
9. Amazon DynamoDB
• Fully-managed, scalable, high
performance No-SQL database
service
• Serve as scalable datastore for IOT
systems
• With DynamoDB, IOT system
developers can store any amount of
data and serve any level of
requests for the data
10. Amazon DynamoDB
• Fully-managed, scalable, high
performance No-SQL database
service
• Serve as scalable datastore for IOT
systems
• With DynamoDB, IOT system
developers can store any amount of
data and serve any level of
requests for the data
11. SkyNet IoT Messaging Platform
• Open source instant messaging
platform
• SkyNet API supports both HTTP REST
and real- time WebSockets
• SkyNet allows you to register devices
on the network
• A device can be anything including
sensors, smart home devices, cloud
resources, drones
• Each device has an UUID & secret
token
12. Xively Cloud Services™
Commercial Platform as a Service for the Internet of
Things
l Supports hundreds of platforms, millions of gateways and billions of smart devices
l Comprehensive and secure infrastructure
services
l Online development tools and dev center
l Best of breed approach
Built on LogMeIn’s Gravity platform connecting 255+ m devices for 55+ m users
13. Xively …Contd…
• Xively is an IoT Cloud Platform
• It is an enterprise platform for building,
managing, and deriving business value from
connected products.
• It also provides the cloud base API with an
SDK
• It supports platforms and technologies like
Android, Arduino, C etc.
• Xively is a PaaS (Platform as a Service)
which exposes its service via RESTful API
• It supports messaging service based on
MQTT
15. Details
• This IoT project uses Arduino Uno and
a set of sensors:
• DHT11: Temperature and humidity
sensor
• TEMT6000: Light intensity sensor
• YL-38 + YL-69: Soil moisture sensor
• We want to send all values read from
these sensors to Xively and create a
dashboard so we can monitor these
parameters.
17. Communication API
• Cloud Models are relied on Communication API
• Communication API facilitate data transfer, control information
transfer from application to cloud, one service to another
• It also exist in the form of Communication Protocols
• It supports RPC, PUBSUB and WAMP
• Eg. Popular API is RESTful API (communication in cloud model)
• Django web framework is used to implement Communication API
18. WAMP: AutoBahn for IoT
• WAMP : Web Application Messaging Protocol
• Mainly used in cloud storage model for IoT & other messaging services
• WAMP is a routed protocol, with all components connecting to a WAMP
Router,
where the WAMP Router performs message routing between the component
• It is protocol for Web Socket (PUBSUB based protocol) : uses RPC
Messaging Pattern
• Some Important Key Terminologies
• Transport
• Session
• Clients (Publisher & Subscriber)
• Router
• Broker
• Dealer
• Application Code
19.
20.
21. AMAZON Web Services for IoT
What Is AWS IoT?
AWS IoT provides secure, bi-directional communication between
Internet-connected devices such as sensors, actuators, embedded
micro-controllers, or smart appliances and the AWS Cloud. This
enables you to collect telemetry data from multiple devices, and
store and analyze the data. You can also create applications that
enable your users to control these devices from their phones or
tablets.
• AWS IoT Components
AWS IoT consists of the following components:
Device gateway
Enables devices to securely and efficiently communicate with
AWS IoT.
Message broker
Provides a secure mechanism for devices and AWS IoT
applications to publish and receive messages from each other. You
can use either the MQTT protocol directly or MQTT over WebSocket to
publish and subscribe. You can use the HTTP REST interface to
publish.
22. Continue...
• Rules engine
Provides message processing and
integration with other AWS services.
You can use an SQL-based language to
select data from message payloads,
and then process and send the data to
other services, such as Amazon S3,
Amazon DynamoDB, and AWS Lambda.
You can also use the message broker
to republish messages to other
subscribers.
23. Continue....
• Group registry
Groups allow you to manage several devices at once by
categorizing them into groups. Groups can also contain groups
—you can build a hierarchy of groups. Any action you perform
on a parent group will apply to its child groups, and to all the
devices in it and in all of its child groups as well. Permissions
given to a group will apply to all devices in the group and in all
of its child groups.
• Device shadow
A JSON document used to store and retrieve current state
information for a device.
• Device Shadow service
Provides persistent representations of your devices in the
AWS Cloud. You can publish updated state information to a
device's shadow, and your device can synchronize its state
when it connects. Your devices can also publish their current
state to a shadow for use by applications or other devices.
24. Continue
....
• Device Provisioning service
Allows you to provision devices using a template that describes the
resources required for your device: a thing, a certificate, and one or more
policies. A thing is an entry in the registry that contains attributes that
describe a device. Devices use certificates to authenticate with AWS IoT.
Policies determine which operations a device can perform in AWS IoT.
• Custom Authentication service
You can define custom authorizers that allow you to manage your own
authentication and authorization strategy using a custom authentication
service and a Lambda function. Custom authorizers allow AWS IoT to
authenticate your devices and authorize operations using bearer token
authentication and authorization strategies.
Custom authorizers can implement various authentication strategies (for
example, JSON Web Token verification, OAuth provider callout, and so on) and
must return policy documents that are used by the device gateway to
authorize MQTT operations.
• Jobs service
Allows you to define a set of remote operations that are sent to and
executed on one or more devices connected to AWS IoT. For example, you can
define a job that instructs a set of devices to download and install application
or firmware updates, reboot, rotate certificates, or perform remote
troubleshooting operations. To create a job, you specify a description of the
remote operations to be performed and a list of targets that should perform
them. The targets can be individual devices, groups or both.
25. Continue....
• Accessing AWS IoT
AWS IoT provides the following interfaces to create and interact with your
devices:
• AWS Command Line Interface (AWS CLI)—Run commands for AWS IoT
on Windows, macOS, and Linux. These commands allow you to create and
manage things, certificates, rules, and policies. To get started, see the AWS
Command Line Interface User Guide. For more information about the
commands for AWS IoT, see iot in the AWS CLI Command Reference.
• AWS IoT API—Build your IoT applications using HTTP or HTTPS requests.
These API actions allow you to programmatically create and manage things,
certificates, rules, and policies. For more information about the API actions
for AWS IoT, see Actions in the AWS IoT API Reference.
• AWS SDKs—Build your IoT applications using language-specific APIs. These
SDKs wrap the HTTP/HTTPS API and allow you to program in any of the
supported languages. For more information, see AWS SDKs and Tools.
• AWS IoT Device SDKs—Build applications that run on devices that send
messages to and receive messages from AWS IoT.