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
lSupports hundreds of platforms, millions of gateways and billions of smart devices
lComprehensive and secure infrastructure
services
lOnline development tools and dev center
lBest 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
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.
•Security and Identity service
Provides shared responsibility for security in
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.