Logical Design of IoT
Logical design of IoT system refers to an abstract representation of the entities & processes without going into the low-level specifies of the implementation. Logical Design of IoT consists :
- IoT Functional Blocks
- IoT Communication Models
- IoT Communication APIs
- IoT Functional Blocks : An IoT System contains number of functional blocks that provide the system the capabilities for identification, sensing, actuation, communication and management.
a.) Device : An IoT system comprises of devices that provide sensing, actuation, monitoring and control functions.
b.) Communication : The communication block handles the communication for IoT system.
c.) Services : An IoT system uses various types of services for device monitoring, device control services, data publishing services and services for device discovery.
d.) Management : Management block provides various functions to govern the IoT system.
e.) Security : It Secures IoT system and priority functions such as authentication ,authorization, message and context integrity and data security.
f.) Application : IoT application provide an interface that the users can use to control and monitor various aspects of IoT system.
- IoT Communication Models : IoT devices are found everywhere and will enable circulatory intelligence in the future. For operational perception, it is important and useful to understand how various IoT devices communicate with each other. IoT allows people and things to connect any time, in any space, with anything and anyone, using any network and service. IoT communication models also promote technological innovation and open opportunities for commercial growth. The 4 main types of IoT communication models are:
a.) Request and Response Model :
This model follows a client-server architecture. The client, when required, requests the information from the server. This request is usually in the encoded format. It is a stateless communication model and each request-response pair is independent of others. On receiving a request, the server fetch necessary data from the site or database and gets ready to respond. After preparing, It is transferred in an encoded format to the client who receives the data and eventually can see the response.
b.) Publish – Subscribe Model :
There are three entities involved in this communication model : Publishers, Brokers, and Consumers.
Publishers are the primary source of data in this model. It sends the data to the topic which are managed by the broker.
Brokers manage the data received from publishers without knowing anything about consumers.
Consumers subscribe to the particular topics which are managed by the broker.
Therefore, it is the responsibility of the brokers to receive data from publishers and send it to eligible consumers. The broker only has the information regarding the consumer to which a particular topic belongs to which the publisher is unaware.
c.) Push – Pull Model :
The push-pull model involves data publishers, data consumers, and data queues. Publishers and Consumers are unaware of each other. Publishers push data to queues and Consumers pull data from the queues. Therefore, the line acts as a message bar. Publishers do not need to aware of the consumers. Queues help in decoupling the message between the producers and consumers.
d.) Exclusive Pair Model :
Exclusive Pair Model is the bi-directional, fully duplex communication model that uses a persistent connection between the client and server. Once connection is set up it remains open until the client send a request to close the connection. It is a state-full communication model and server is aware of all the open connections. Web Socket based communication API is fully based on this model.
3. IoT Communication APIs
- REST based communication APIs(Request-Response Based Model) : Representational State Transfer (REST), every time the client wants to retrieves data from a server a connection needs to be established. A client sends a request, which is received by server. The server then processes the request and sends the response back to the client. REST is unidirectional, that’s why there is more overhead.
RESTful web service is a collection of resources which are represented by URIs. RESTful web API has a base URI(e.g: http://example.com/api/tasks/). The clients and requests to these URIs using the methods defined by the HTTP protocol(e.g: GET, PUT, POST or DELETE). A RESTful web service can support various internet media types.
- WebSocket based communication APIs(Exclusive Pair Based Model) : WebSocket-based communication API, over TCP connection: the connection with the server is established only once which is done by initial handshake with the server. The server can send data at any time and the client can handle receiving that data, the client can also send other requests to the server. WebSocket APIs follow the exclusive pair communication model.