Technical Building Blocks
Technical Building Blocks
• Request-Response Model
• Request-response model is communication model in which the
client sends requests to the server and the server responds to the
requests.
• When the server receives a request, it decides how to respond,
fetches the data, retrieves resource representation, prepares the
response, and then sends the response to the client.
• Request-response is a stateless communication model and each
request-response pair is independent of others.
• HTTP works as a request-response protocol between a client and
server. A web browser may be the client, and an application on a
computer that hosts a web site may be the server.
• Example: A client (browser) submits an HTTP request to the
server; then the server returns a response to the client. The
response contains status information about the request and may
also contain the requested content.
• Publish-Subscribe Model
• Publish-Subscribe is a communication model that
involves publishers, brokers and consumers.
• Publishers are the source of data. Publishers send
the data to the topics which are managed by
the broker.
• Publishers are not aware of the consumers.
Consumers subscribe to the topics which are
managed by the broker.
• When the broker receive data for a topic from
the publisher, it sends the data to all
the subscribed consumers.
• Push-Pull Model
• Push-Pull is a communication model in which the
data producers push the data to queues and the
consumers Pull the data from the Queues.
Producers do not need to be aware of the
consumers.
• Queues help in decoupling the messaging
between the Producers and Consumers. Queues
also act as a buffer which helps in situations
when there is a mismatch between the rate at
which the producers push data and the rate at
which the consumer pull data.
• Exclusive Pair Model
• Exclusive Pair is a bidirectional, fully duplex
communication model that uses a persistent
connection between the client and server.
• Connection is setup it remains open until the
client sends a request to close the connection.
Client and server can send messages to each
other after connection setup.
• Exclusive pair is stateful communication model
and the server is aware of all the open
connections.
IoT based communication APIs
1. REST-based Communication APIs
• Representational state transfer (REST) is a set of architectural principles by which you can design
Web services the Web APIs that focus on systems’s resources and how resource states are
addressed and transferred.
• REST APIs that follow the request response communication model, the rest architectural
constraint apply to the components, connector and data elements, within a distributed
hypermedia system. The rest architectural constraint are as follows:
• Client-server – The principle behind the client-server constraint is the separation of concerns. for
example clients should not be concerned with the storage of data which is concern of the server.
Similarly the server should not be concerned about the user interface, which is concern of the
client. Separation allows client and server to be independently developed and updated.
• Stateless – Each request from client to server must contain all the information necessary to
understand the request, and cannot take advantage of any stored context on the server. The
session state is kept entirely on the client.
• Cache-able – Cache constraints requires that the data within a response to a request be implicitly
or explicitly leveled as cache-able or non cache-able. If a response is cache-able, then a
client cache is given the right to reuse that response data for later, equivalent requests. caching
can partially or completely eliminate some instructions and improve efficiency and scalability.
• REST is most popular IoT Communication APIs.
• Layered system – layered system constraints, constrains the behavior of
components such that each component cannot see beyond the immediate layer
with they are interacting. For example, the client cannot tell whether it is connected
directly to the end server or two an intermediary along the way. System scalability
can be improved by allowing intermediaries to respond to requests instead of the
end server, without the client having to do anything different.
• Uniform interface – uniform interface constraints requires that the method of
communication between client and server must be uniform. Resources are
identified in the requests (by URIsin web based systems) and are themselves is
separate from the representations of the resources data returned to the client.
When a client holds a representation of resources it has all the information required
to update or delete the resource you (provided the client has required permissions).
Each message includes enough information to describe how to process the message.
• Code on demand – Servers can provide executable code or scripts for clients to
execute in their context. this constraint is the only one that is optional.
• A RESTful web service is a ” Web API ” implemented using HTTP and REST principles.
2. WebSocket based communication API
• Websocket APIs allow bi-directional, full duplex communication between
clients and servers. Websocket APIs follow the exclusive pair
communication model.
• Unlike request-response model such as REST, the WebSocket APIs allow
full duplex communication and do not require new connection to
be setup for each message to be sent.
• Websocket communication begins with a connection setup request sent
by the client to the server. The request (called websocket handshake) is
sent over HTTP and the server interprets it is an upgrade request.
• If the server supports websocket protocol, the server responds to the
websocket handshake response.
• After the connection setup client and server can send data/mesages to
each other in full duplex mode. Websocket API reduce the network traffic
and letency as there is no overhead for connection setup and termination
requests for each message.
• Websocket suitable for IoT applications that have low latency or high
throughput requirements. So Web socket is most suitable IoT
Communication APIs for IoT System.
IoT enabling technology
Wireless Sensor Networks
• A wireless sensor network comprises of distributed device with sensor
which are used to monitor the environmental and physical conditions.
• A WSN consists of a number of end-nodes and routers and a coordinator.
• End Nodes have several sensors attached to them in node can also act as
routers. Routers are responsible for routing the data packets from end-
nodes to the coordinator.
• The coordinator collects the data from all the nodes. Coordinator also act
as a gateway that connects the WSN to the internet.
Some examples of WSNs used in IoT systems are described as
follows:
• Weather monitoring system use WSNs in which the nodes collect
temperature humidity and other data which is aggregated and
analyzed.
• Indoor air quality monitoring systems use WSNs to collect data on
the indoor air quality and concentration of various gases
• Soil moisture monitoring system use WSNs to monitor soil
moisture at various locations.
• Surveillance system use WSNs for collecting Surveillance data
(such as motion detection data)
• Smart grid use WSNs for monitoring the grid at various points.
• Structural health monitoring system use WSNs to monitor the
health of structures ( buildings, bridges) by collecting vibration
data from sensor nodes de deployed at various points in the
structure.
Cloud Computing
• Cloud computing is a transformative computing paradigm that
involves delivering applications and services over the Internet
Cloud computing involves provisioning of computing, networking
and storage resources on demand and providing these resources
as metered services to the users, in a “pay as you go” model.
• Cloud computing resources can be provisioned on demand by the
users, without requiring intervention with the cloud service
Provider.
• The process of provisioning resources is automated.
• Cloud computing resources can be accessed over The network
using standard access mechanisms that provide platform
independent access through the use of heterogeneous client
platforms such as the workstations, laptops, tablets and
smartphones.
Big Data Analytics