100% found this document useful (1 vote)
10K views

Lect6-IoT-Cloud Storage Models and Communication APIs

This document provides an overview of cloud storage models, communication APIs, and Amazon Web Services (AWS) offerings for Internet of Things (IoT) applications. It discusses the Web Application Messaging Protocol (WAMP) for IoT, the Python web framework Django, and various AWS services including EC2, S3, DynamoDB, RDS, and Auto Scaling. Code examples are provided for interacting with AWS services like S3 from Python. Overall, the document introduces concepts and services relevant for building scalable IoT systems in the cloud.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
10K views

Lect6-IoT-Cloud Storage Models and Communication APIs

This document provides an overview of cloud storage models, communication APIs, and Amazon Web Services (AWS) offerings for Internet of Things (IoT) applications. It discusses the Web Application Messaging Protocol (WAMP) for IoT, the Python web framework Django, and various AWS services including EC2, S3, DynamoDB, RDS, and Auto Scaling. Code examples are provided for interacting with AWS services like S3 from Python. Overall, the document introduces concepts and services relevant for building scalable IoT systems in the cloud.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 24

IoT Physical Servers

&
Cloud Offerings
Presented by
Dr. Amany AbdElSamea

1
Outline

• Cloud Storage Models and Communication APIs


• WAMP for IOT
• Python Web Application Framework – Django
• Amazon Web Services

2
Cloud Storage Models and
Communication APIs

• Cloud computing is a transformative computing


paradigm that involve delivering applications
and services over the Internet based on pay per
use basis.
• We will see WAMP in IoT
• Also AWS & their applications for IoT
WAMP for IoT
• Web Application Messaging Protocol
• Sub-protocol of web socket which provides
- Publish –Subscribe and
-Remote Procedure Call (RPC) messaging patterns
WAMP Concepts
• Transport: Transport is channel that connects two peers.
• Session: Session is a conversation between two peers that runs over a
transport.
• Client: Clients are peers that can have one or more roles. In publish-subscribe
model client can have following roles:
– Publisher: Publisher publishes events (including payload) to the topic
maintained by the Broker.
– Subscriber: Subscriber subscribes to the topics and receives the events
including the payload.
In RPC model client can have following roles:
– Caller: Caller issues calls to the remote procedures along with call arguments.
– Callee: Callee executes the procedures to which the calls are issued by the
caller and returns the results back to the caller.
WAMP Concepts cont.,
• Router: Routers are peers that perform generic call and event routing. In
publish-subscribe model Router has the role of a Broker which routes messages
published to a topic to all subscribers subscribed to the topic.

In RPC model Router has the role of a dealer:


– Dealer: Dealer acts a router and routes RPC calls from the Caller to the Callee
and routes results from Callee to Caller.

• Application Code: Application code runs on the Clients (Publisher, Subscriber,


Callee or Caller).
Python Web Application Framework -
Django
• Django is an open source web application framework for developing
web applications in Python.
• A web application framework in general is a collection of solutions,
packages and best practices
• that allows development of web applications and dynamic websites.
• Django provides a unified API to a database backend.
• Thus web applications built with Django can work with different
databases without requiring any code changes.
• With this flexibility in web application design combined with the
powerful capabilities of the Python language and the Python
ecosystem, Django is best suited for cloud applications.
• Django consists of an object-relational mapper, a web templating
system and a regular-expression based URL dispatcher.
Django Architecture
Web Services

9
Amazon Web Services
• Amazon Web Services (AWS) is a collection of remote computing services
(web services) that together make up a cloud computing platform, offered
over the Internet by Amazon.com.
• Website: http://aws.amazon.com
• AWS is located in 9 geographical 'Regions‘. Each Region is wholly contained
within a single country and all of its data and services stay within the
designated Region.
• Each Region has multiple 'Availability Zones', which are distinct data centers
providing AWS services.

10
Amazon Web Services for IoT

11
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

12
Amazon EC2 Python Example

13
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.

14
Amazon S3 Python Example

15
Amazon Autoscaling
• Allows automatically scaling EC2 capacity up
(vertical scaling entails installing more powerful
systems or upgrading to more powerful
components) 0r down (horizontal scaling adds to
resources by expanding the number of servers or
other processing units) 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.
16
Amazon RDS

• Web service that allows to create instances of


MySQL, Oracle or MS SQL Server in cloud
• Developers can easily setup, 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

17
Amazon RDS Python Example

18
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.

19
Amazon DynamoDB Python Example

20
On-Premises and AWS Comparison

On-Premises Infrastructure Amazon Web Services

Security
Firewalls ACLs Administrators Security Network Identity Access
Groups Access Management
Control
Lists

Networking Network
Router Network Pipeline Switch Elastic
Load Amazon
Balancing VPC
On-
Premises VPC
Servers Servers
Amazon Amazon EC2
Machine Image Instances

Storage and
DAS SAN NAS RDBMS
Database
Elastic Elastic Amazon RDS
Block Store File System Amazon
S3
AWS by Category: Core Services
AWS by Category: Foundational Services
Questions

You might also like