CLOUD STORAGE && WEB
COMMUNICATION APIs
CLOUD STORAGE MODELS and COMMUNICATION APIs
1. WAMP – AutoBahn for IoT
2. Xively Cloud for IoT
3. Python Web Application Framework – Django
4. Designing RESTful web API
5. Amazon web services for IoT
6. SkyNet IoT Messaging Platform
Dr Sumalatha Aradhya, Dept of CSE, SIT,
1
Tumakuru
Dr Sumalatha Aradhya, Dept of CSE, SIT,
2
Tumakuru
WAMP – AutoBahn for IoT
❑ Web Application Messaging Protocol
❖Sub protocol of Websocket
❖Provides publish-subscribe and RPC messaging patterns.
❖Enables distributed application architectures
❖Key concepts of WAMP are:
▪Connects two peers
➢Transport ▪Default transport is WebSocket
▪Support message based reliable bi –directional communication
▪Conversation between two peers
➢Session ▪ Runs over a Transport
Dr Sumalatha Aradhya, Dept of CSE, SIT,
3
Tumakuru
WAMP – AutoBahn for IoT
❑ Web Application Messaging Protocol
▪Peers that have one or more roles
➢Client
Publish – subscriber model RPC model
Caller Callee
publisher subscriber
-Publishes evens to
-Subscribes to the topics Issues calls to Executes the
the topic maintained
and receives the events remote procedures procedures
by the Broker
Including payload along with call to which the
arguments calls are
issued by the
caller and
returns the
result back
to caller
Dr Sumalatha Aradhya, Dept of CSE, SIT,
4
Tumakuru
WAMP – AutoBahn for IoT
❑ Web Application Messaging Protocol
▪Peers that perform generic call and event routing.
➢Router ▪ The role of the client varies as per model
publish- subscriber RPC
Broker Dealer
-Acts as a router
-Acts as a router
-Routes messages published to topic
-Routes RPC calls from Caller
to all subscribers subscribed to the topic.
to the Callee
-Routes results from Callee to
the Caller.
Dr Sumalatha Aradhya, Dept of CSE, SIT,
5
Tumakuru
WAMP – AutoBahn for IoT
➢Application ▪Runs on the Clients
Code
publisher subscriber Callee Caller
WAMP Session between Client and Router:
Client
Roles Router
Publisher Transport Roles
Session
Subscriber Dealer
Caller Broker
Callee
Dr Sumalatha Aradhya, Dept of CSE, SIT,
6
Tumakuru
WAMP Protocol interaction between peers:
Peer Peer
TCP Connection established
TLS Connection established
Request to setup WebSocket Communication Initial Handshak
Over HTTP
Response accepting the request
WAMP established WAMP session
lifetime
WAMP WAMP closed
Transport
lifetime WAMP established WAMP session
lifetime
WAMP closed
WebSocket connection close request Closing
WebSocket
WebSocket connection close response request
TLS Connection closed
TCP Connection closed
Dr Sumalatha Aradhya, Dept of CSE, SIT,
7
Tumakuru
WAMP – AutoBahn for IoT
Publish – Subscribe messaging WAMP AutoBahn :
Client Server Client
Client Process Server Client Process
WAMP App Process
WAMP App
Session WAMP- WebSocket
Communication WAMP WAMP- WebSocket Session
Communication
Router
App Code Message published
Subscriber App Code
to topic Session receives
message
Let’s look into an example of a WAMP publisher-subscriber implementation using AutoBahn:
(P.S: Follow the slides 9-)
Dr Sumalatha Aradhya, Dept of CSE, SIT,
8
Tumakuru
1. Commands for Installing AutoBahn:
Dr Sumalatha Aradhya, Dept of CSE, SIT,
9
Tumakuru
2. Clone AutoBahn Python from gihub:
P.S: this link
Doesn’t exist now
Alternative link
Dr Sumalatha Aradhya, Dept of CSE, SIT,
10
Tumakuru
❖3. Create WAMP publisher component
Publisher component: Publishes a message containing the current time stamp to a topic named
‘test-topoc’
Dr Sumalatha Aradhya, Dept of CSE, SIT,
11
Tumakuru
4. Create WAMP Subscriber component
Subscriber Component: Subscribers to the ‘test-topic’.
Dr Sumalatha Aradhya, Dept of CSE, SIT,
12
Tumakuru
5. Run the application router on a WebSocket transport
server
i) Run the application router on a WebSocket transport server:
Example,
ii) Run the Publisher component on a WebSocket transport client:
iii) Run the Subscriber component on a WebSocket transport client:
Dr Sumalatha Aradhya, Dept of CSE, SIT,
13
Tumakuru
Exercise : Explore the WAMP autobahn
References: https://crossbario.com/blog/Small-Pragmatic-WAMP-Demo/
https://github.com/pawelmhm/AutobahnPython
https://github.com/claws/AutobahnPython
Dr Sumalatha Aradhya, Dept of CSE, SIT,
14
Tumakuru